在运行相关任务之前检查输入

时间:2014-07-25 04:48:47

标签: ant gradle gradle-2

我有一个Ant构建脚本,我需要编译我的项目的一部分(它链接到我们使用的JavaScript库的第三方构建系统)。

我想围绕这个包装Gradle,所以我已经导入了Ant构建,并且我可以通过Gradle成功调用Ant目标。我甚至已经为目标添加了输入和输出检查,因此如果它们不需要

它们将无法运行

Ant目标具有他们所做的设置工作 - 主要是导入配置和设置。他们通过依赖init目标来执行此操作,这需要大约4-5秒才能运行。我想做的是,如果主要任务上的输入已经满足,则阻止初始目标运行。

有什么建议吗?

示例Ant构建脚本(build.xml):

<?xml version="1.0" encoding="utf-8"?>
<project name="MyProject" default="build">
  <target name="init" />
  <target name="build" depends="init">
    <echo message="hello" file="output.txt" />
  </target>
</project>

示例Gradle脚本(build.gradle):

ant.importBuild 'build.xml'

build {
  inputs.dir file('src')
  outputs.file file('output.txt')
}

理想情况下,当我运行gradle build时,如果init是最新的,我不希望build运行。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

build的最新检查只会在init运行后进行。您可以做的是为init声明相同的输入,如果没有文件输出,则outputs.upToDateWhen { true }。也许这符合您的需求。