从Gradle 1.3升级到1.10后,任务始终是最新的

时间:2014-01-20 15:18:13

标签: gradle

My Gradle构建使用JavaExec从ANTLR语法生成Java源文件。当使用Gradle 1.3时,似乎工作正常,在应该生成Java时,并在应该的时候显示UP-TO-DATE。我升级到Gradle 1.10,现在任务总是显示UP-TO-DATE,即使在干净(删除生成的Java文件)之后也是如此。

我的build.gradle包含以下内容:

project.ext.grammarpackage = project.group
project.ext.genAntlrDir = "$buildDir/generated-sources/antlr"

task antlrOutputDir << {
  mkdir(project.ext.genAntlrDir)
}

task generateGrammarSource(dependsOn: antlrOutputDir, type: JavaExec) {
  description = 'Generates Java sources from Antlr4 grammars.'

  def antlrSource = 'src/main/antlr'

  inputs.dir file(antlrSource)
  outputs.dir file(project.ext.genAntlrDir)

  def grammars = fileTree(antlrSource).include('**/*.g4')

  main = 'org.antlr.v4.Tool'
  classpath = configurations.antlr4
  args = ["-visitor", "-o", "${project.ext.genAntlrDir}/${project.ext.grammarpackage}", grammars.files].flatten()
}

compileJava {
  dependsOn generateGrammarSource
  source project.ext.genAntlrDir
}

任何人都可以看到我应该做的不同吗?升级到Gradle 1.10后,我运行了clean。我知道我可以使用generateGrammarSource选项运行--rerun-tasks任务,但不要强制它一直运行,只要它不是最新的。

0 个答案:

没有答案