Java Gradle:任务依赖关系树被忽略?
我对gradle的任务依赖性有问题 我有一个version.properties文件,必须用版本信息清除(在清理任务中)或填充(在war任务中) 因此,我设置了此依赖项: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
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