我真的可以使用一些帮助!
gradle文档说要使最新的逻辑运行,只需这样做:
task transform {
ext.srcFile = file('mountains.xml')
ext.destDir = new File(buildDir, 'generated')
inputs.file srcFile
outputs.dir destDir
对于您定义的任务,这一切都很好。但是,我使用eclipse插件对.classpath文件进行了一些修改。最新的不起作用。也就是说,它一次又一次地开始执行任务(至少对我而言)。这就是我所拥有的:
eclipse {
classpath {
//eclipseClasspath.inputs.file // something like this??? but what to set it to?
//eclipseClasspath.outputs.file // here too
file {
withXml {
def node = it.asNode()
// rest of my stuff here
我尝试了几个我已经注释掉两行的东西。由于那些不起作用,我意识到我并没有真正的线索,可以使用一些帮助!提前谢谢!
答案 0 :(得分:0)
根据我的经验,Eclipse任务不应该每次都重新运行。这让我觉得你正在做一些事情来改变输入或输出。如果在Gradle生成或更改依赖项等之后修改Eclipse项目,则自然会触发upToDate检查。
如果你确实需要强制它每次运行,你或许可以让它与它一起工作。我不确定在其他输出已经定义的时候我是否尝试过使用它。
eclipseClasspath {
outputs.upToDateWhen { true } //there isn't an equivalent for inputs
}
一个重要的注意事项是,您使用的是描述项目的Eclipse模型,而不是实际任务本身:
eclipse { //this is the eclipse model
classpath {
}
}
eclipseClasspath {
//this is a task
}
eclipseProject {
//this is a task
}