2013-10-29 19 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