使用Gradle与idea-ext插件时IntelliJ运行配置的Classpath问题
解决Gradle委托运行时Classpath不包含插件模块的问题
当你将IntelliJ的运行构建委托给Gradle时,IntelliJ配置里的自定义Classpath不会自动同步到Gradle的运行任务中——Gradle只会使用自身任务配置的Classpath,这就是问题的核心原因。
以下是具体的修复步骤:
修改主模块的Gradle配置
在主应用模块的build.gradle(或build.gradle.kts)中,确保运行任务的Classpath包含你的占位模块(即定义所有插件Classpath的无代码模块)。如果你用的是
application插件,添加如下配置:application { mainClass = '你的主类全限定名' // 将占位模块的运行时Classpath合并进来 runtimeClasspath += project(':你的占位模块名称').runtimeClasspath }如果你是自定义
JavaExec任务,调整Classpath配置:task runApp(type: JavaExec) { mainClass = '你的主类全限定名' classpath = sourceSets.main.runtimeClasspath + project(':你的占位模块名称').runtimeClasspath }同步Gradle项目
在IntelliJ中点击"Sync Project with Gradle Files"按钮,让IDE更新运行配置的Classpath信息。验证运行
运行Gradle的run任务(或你自定义的运行任务),此时java.util.ServiceLoader应该能正常加载所有插件模块的实现类,和IntelliJ本地运行的效果一致。
内容的提问来源于stack exchange,提问作者Ditz
相关产品推荐
相关产品推荐

