讓我知道如果我是關閉基地,但基本上就是我想你想要做的僅僅是產生在兩盤源的兩個獨立的JAR碰巧住在相同的根目錄。這是一種非常有趣的方式來構建您的項目,就像@托馬斯提到的那樣,但假設您無法更改項目結構,您可以簡單地創建自定義source sets來解決此問題。
你的構建看起來像這樣。
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
}
儘管這在技術上是一個搖籃項目,這兩個源將每個人都有自己的編譯任務,罐子任務和配置。你會像這樣配置你的依賴關係。
dependencies {
projACompile 'foo.org:lib:1.0'
projBCompile 'bar.org:lib:2.0'
}
這些似乎不是一個不同的項目,但單獨的軟件包。一般來說,不同的項目會有不同的路徑和文件樹。 – Opal 2014-09-24 05:57:14
你說得對。我想要做的是看看不同項目如何共存並共享相同的根結構,並分別使用gradle構建。 – rdnnz 2014-09-24 14:45:05
因此,您應該將公共代碼庫分離到第三個項目,然後將提到的項目依賴於第三個項目。 – Opal 2014-09-24 14:46:14