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



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

我想把Gradle包裹起来,所以我已经导入了Ant构建,我可以通过Gradle成功地调用Ant目标。我甚至为目标添加了输入和输出检查,这样如果它们不需要

,它们就不会运行。

Ant目标有它们所做的设置工作——主要是导入配置和设置。它们通过对init目标的依赖来实现这一点,运行大约需要4-5秒。我想做的是防止init target运行,如果主任务的输入已经满足。

有什么建议吗?

示例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时,如果build是最新的,我不希望init运行。

有什么建议吗?

build的最新检查只会在init运行之后发生。您可以做的是为init声明相同的输入,如果没有文件输出,则为outputs.upToDateWhen { true }声明相同的输入。

相关内容

  • 没有找到相关文章

最新更新