如果我不在基地,请告诉我,但基本上我认为您想要做的只是从恰好位于同一根目录中的两组源中生成两个单独的 JAR。正如@Tomas 所提到的,这是一种非常有趣的项目结构方式,但假设您无法更改项目结构,您可以简单地创建自定义源集来解决这个问题。
您的构建可能看起来像这样。
apply plugin: 'java-base'
sourceSets {
projA {
java {
srcDir 'src/main/java'
include 'pkg1/**'
}
}
projB {
java {
srcDir 'src/main/java'
include 'pkg2/**'
}
}
}
task projAJar(type: Jar) {
baseName 'projA'
from sourceSets.projA.output
}
task projBJar(type: Jar) {
baseName 'projB'
from sourceSets.projB.output
}
虽然这在技术上是一个Gradle 项目,但这两个源集各有自己的编译任务、jar 任务和配置。您将像这样配置您的依赖项。
dependencies {
projACompile 'foo.org:lib:1.0'
projBCompile 'bar.org:lib:2.0'
}