增量Gradle Build没有说UP-TO-DATE

Sto*_*wke 4 java gradle build.gradle

作为增量构建系统的Gradle应该检测何时没有对源或输出进行任何更改,并在适当时跳过任务以节省构建时间.

但是,在我的构建中,后续执行gradle任务,两者之间没有任何变化,这个增量功能不起作用.compileJava,jar等正在执行每个构建,而不仅仅是在进行了更改时.

我们的构建非常复杂(从一个非常古老,非常凌乱的ant build转换为gradle),所以我只是展示一个小片段:

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')
}
Run Code Online (Sandbox Code Playgroud)

连续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
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以做些什么来阻止最新的检测无法正常工作?它可能与我复杂的构建路径有关吗?

Pet*_*ser 8

当你运行时--info,Gradle将告诉你为什么任务不是最新的.