2013-10-29 21 views
4

作爲一個增量構建系統,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 

我的問題是,什麼可能我那樣做會妨礙了最新檢測到無法正常工作?它可能與我複雜的構建路徑有關嗎?

回答

8

當你用--info運行時,Gradle會告訴你爲什麼任務不是最新的。你需要

+0

感謝您的提示! – StormeHawke