Gradle - 如何在预定义任务上设置最新参数?

时间:2012-08-23 16:17:46

标签: gradle

我真的可以使用一些帮助!

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

我尝试了几个我已经注释掉两行的东西。由于那些不起作用,我意识到我并没有真正的线索,可以使用一些帮助!提前谢谢!

1 个答案:

答案 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
}