Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gradle:任务依赖关系树被忽略?_Java_Gradle_War - Fatal编程技术网

Java Gradle:任务依赖关系树被忽略?

Java Gradle:任务依赖关系树被忽略?,java,gradle,war,Java,Gradle,War,我对gradle的任务依赖性有问题 我有一个version.properties文件,必须用版本信息清除(在清理任务中)或填充(在war任务中) 因此,我设置了此依赖项: clean.dependsOn clearVersionProperties 及 我的任务已在commons.gradle中外部化,如下所示: ... def writeVersionFile(String whatToWrite) { File f = new File(project.webAppDirName

我对gradle的任务依赖性有问题

我有一个version.properties文件,必须用版本信息清除(在清理任务中)或填充(在war任务中)

因此,我设置了此依赖项:

clean.dependsOn clearVersionProperties

我的任务已在commons.gradle中外部化,如下所示:

...

def writeVersionFile(String whatToWrite) {
    File f = new File(project.webAppDirName+'/WEB-INF/version.properties');
    if (f.exists()) { f.delete(); }

    f = new File(project.webAppDirName+'/WEB-INF/version.properties');
    FileOutputStream os = new FileOutputStream(f);
    os.write(whatToWrite.getBytes());
    os.flush();
    os.close();
}

task clearVersionProperties() {
    println "Clearing version file"
    String whatToWrite = "version=@version@"
    writeVersionFile(whatToWrite)
}

task writeVersionProperties(dependsOn: svnRevision) {
    println "Writing version file"
    String whatToWrite = "version="+project.ext.revision;
    writeVersionFile(whatToWrite)
}
...
据我所知,clean现在将调用clearVersionProperties,而war将调用writeVersionProperties

但当我执行梯度清洁时,反应堆计划如下所示:

C:\devtools\....\branches\merge\Application>gradle -bbuild20.gradle clean -Ptomcat=7 -Ptarget=live

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/
docs/2.0/userguide/gradle_daemon.html.
_______________________________________________________________________________

### building LIVE system

_______________________________________________________________________________
Clearing version file
Writing version file
JSP compilation...
TC7 Sources integrated
________________________________________________________
Compiling JSPs against Tomcat 7.0.11
________________________________________________________
:clearVersionProperties UP-TO-DATE
:clean UP-TO-DATE

BUILD SUCCESSFUL

Total time: 16.803 secs
为什么要执行clearVersionProperties和writeVersionProperties任务,因为它们绑定到特定的构建阶段?例如,任务infoEnv没有执行,但是任务writeVersionProperties只应该由war任务执行,这确实是一个问题


感谢您的帮助

与此同时,我发现了这些任务被解雇的原因:


我错过了这就是为什么你不应该使用
,但是,如果我想使用增量构建,除了
doLast
之外,我没有其他选择了(我不确定你在这里如何与增量构建建立联系),我只想在gradle clean上清除属性文件,只想在gradle war上写入属性,最好是在文件不存在的情况下。这将是一个渐进的步骤,对吗?
C:\devtools\....\branches\merge\Application>gradle -bbuild20.gradle clean -Ptomcat=7 -Ptarget=live

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/
docs/2.0/userguide/gradle_daemon.html.
_______________________________________________________________________________

### building LIVE system

_______________________________________________________________________________
Clearing version file
Writing version file
JSP compilation...
TC7 Sources integrated
________________________________________________________
Compiling JSPs against Tomcat 7.0.11
________________________________________________________
:clearVersionProperties UP-TO-DATE
:clean UP-TO-DATE

BUILD SUCCESSFUL

Total time: 16.803 secs
task clearVersionProperties() << {
    println "Clearing version file"
    String whatToWrite = "version=@version@"
    writeVersionFile(whatToWrite)
}

task writeVersionProperties(dependsOn: [svnRevision]) << {
    println "Writing version file"
    String whatToWrite = "version="+project.ext.revision;
    writeVersionFile(whatToWrite)
}

writeVersionProperties.mustRunAfter clearVersionProperties