作爲一個增量構建系統,Gradle應該能夠檢測到沒有對源或輸出進行更改,並在適當時跳過任務以節省構建時間。增量式Gradle構建並不是說最新的
但是,在我的構建中,後續執行gradle任務時,兩者之間沒有任何更改,但此增量功能不起作用。 compileJava,jar等都是在每個構建中執行,而不是僅在做出更改時執行。
我們的構建是非常複雜的(,轉換從一個很老很凌亂ant構建到搖籃),所以我只是要顯示一個小片段:
buildDir = 'build-server'
jar {
sourceSets.main.java.srcDirs = ['src',
'../otherProject/src']
sourceSets.main.java {
include 'com/ourCompany/pkgone/allocation/**'
include 'com/ourCompany/pkgone/authenticationmngr/**'
...
//Excludes from all VOBs
exclude 'com/ourCompany/pkgtwo/polling/**'
}
sourceSets.main.resources.srcDirs = ['cotsConfig/ejbconfig']
sourceSets.main.resources {
include 'META-INF/**'
}
}
dependencies {
compile project(':common')
}
運行在這個項目上gradle jar
兩倍一行結果如下輸出:
P:\Project>gradlew jar
:common:compileJava
:common:processResources UP-TO-DATE
:common:classes
:common:jar
:clnt:compileJava
:clnt:processResources UP-TO-DATE
:clnt:classes
:clnt:jar
BUILD SUCCESSFUL
Total time: 1 mins 46.802 secs
P:\Project>gradlew jar
:common:compileJava
:common:processResources UP-TO-DATE
:common:classes
:common:jar
:clnt:compileJava
:clnt:processResources UP-TO-DATE
:clnt:classes
:clnt:jar
BUILD SUCCESSFUL
我的問題是,什麼可能我那樣做會妨礙了最新檢測到無法正常工作?它可能與我複雜的構建路徑有關嗎?
感謝您的提示! – StormeHawke