我有一个多模块项目如下:
top-level-module
sub-module-1
sub-module-2
sub-module-3
顶级模块 gradle 配置如下所示:
...
def javaProjects() {
subprojects.findAll { new File(it.projectDir, 'src/main/java').directory }
}
configure(javaProjects()) {
apply plugin: "io.franzbecker.gradle-lombok"
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: "jacoco"
apply plugin: 'maven'
apply plugin: 'maven-publish'
...
publishing {
repositories {
maven {
url = ...
credentials {
username = ...
password = ...
}
}
}
}
}
sub-module-1 和 sub-module-2 的 gradle 配置如下:
plugins {
id 'java'
id 'groovy'
id 'application'
id 'maven'
id 'maven-publish'
}
mainClassName = 'com.mycompany.MyClass'
applicationName = 'xxx-cli' // xxx-cli is different for both modules
...
publishing {
publications {
XXXCliTar(MavenPublication) { // XXXCliTar is different in two modules
artifact(distTar)
artifactId "${applicationName}"
}
}
}
当我按如下方式使用发布任务时:
gradle -i build publish
我发现只发布了 sub-module1 中的工件。
真正奇怪的是,这只发生在 Jenkis 作业中(在 linux slave 上)运行时。在我的 Windows 开发机器上运行时不会发生这种情况!
我想知道为什么 sub-module2 中的工件没有发布。