Gradle Application插件无法找到主类,执行./gradlew run报错
问题原因及解决方法
核心原因
你把application插件和主类配置放在了根项目的build.gradle里,但主类CliTestApp.java实际在desktop模块中。Gradle的application插件默认会在当前配置的项目(这里是根项目)下查找编译后的class文件,而根项目没有自己的源码目录,自然找不到位于desktop模块的主类。
解决步骤
调整插件与配置位置
把根项目build.gradle中的application插件和主类配置,移动到desktop模块的build.gradle中:- 根项目
build.gradle修改后:allprojects { group 'com.liljaw' } subprojects { apply plugin: 'java' sourceCompatibility = 1.8 } project(':desktop') { dependencies { implementation project(':core') } } desktop模块的build.gradle修改后:plugins { id 'application' } application { mainClass = 'com.liljaw.desktop.CliTestApp' } dependencies { implementation project(':core') }
- 根项目
正确执行运行命令
现在需要指定运行desktop模块的run任务:./gradlew :desktop:run
这样就能正确找到主类并运行应用了。
内容的提问来源于stack exchange,提问作者Scorb
相关产品推荐
相关产品推荐

