我已經設置了多模塊Gradle構建,其中包含多個模塊。我想要做的事非常簡單 - 當我創建一個發行版時,我總是希望使用一個名爲「dist/lib」的目錄,除了一個項目,它應該是「dist」。無法覆蓋多項目構建中的Gradle中的屬性
顯而易見的解決方案 - 創建一個名爲「distLibDir」的變量,併爲特定項目覆蓋它,似乎沒有工作。
下面是子模塊的代碼:
project.version = '1.1'
project.ext.distLibDir = 'dist'
dependencies {
....
}
而這裏的頂級項目代碼:
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
if (! project.hasProperty('distLibDir')) {
project.ext.distLibDir = 'dist/lib'
}
task copyLib(type: Copy) {
into project.distLibDir
from configurations.runtime
}
task dist(type: Copy, dependsOn: [clean, jar, copyLib]) {
from 'build/libs'
into project.distLibDir
}
}
無論我怎麼努力,該目錄永遠是對是「dist/lib」,我不能將它覆蓋爲只有一個模塊。有沒有人知道這裏發生了什麼問題?
我最終以if(project.path ==「:foo」){...} else {...})解決方案。謝謝彼得! – matvey