我有两个gradle配置的项目,projectA和projectB。 ProjectA是一个Spring引导项目,有两个主要类,一个在直接运行projectA时运行,另一个在运行projectB时运行(参见下面的gradle文件)。 ProjectA导出为JAR,它被声明为projectB的依赖项。 ProjectB将projectA.jar:
中的类指定为其主类//ProjectB's build.gradle
apply plugin: 'application'
mainClassName = 'com.projectA.api.MainClassToBeRunInProjectB'
/**
* `verify` task, `run` task to be exact
*/
task verify(dependsOn:run)
dependencies{
compile (group:'com.projectA.api',name:'api-ProjectA-jar',version:'1.0.0')
}
//Download artifacts
repositories {
mavenLocal()
maven {
url 'http://nexus.projectJarLocations.local/nexus/content/groups/public/'
}
mavenCentral()
}
在projectB中运行验证步骤时,构建失败,如下所示:
acidnbass:projectB acidnbass$ gradle clean verify
> Task :run
Error: Could not find or load main class com.projectA.api.MainClassToBeRunInProjectB
FAILURE: Build failed with an exception.
为什么我不能从projectA运行主类?是否需要额外的配置才能从外部源运行主类?
答案 0 :(得分:0)
可以通过设置如下任务来实现:
task runApp(dependsOn: configurations.compileClasspath, type: JavaExec) {
group = "app"
classpath = sourceSets.test.runtimeClasspath
main = 'com.projectA.api.MainClassToBeRunInProjectB'
}
并通过添加依赖项作为实现
dependencies{
implementation('com.projectA.api:api-ProjectA-jar:1.0.0')
}