我有一个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 }
声明相同的输入。