我有一个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
运行。
有什么建议吗?
答案 0 :(得分:0)
build
的最新检查只会在init
运行后进行。您可以做的是为init
声明相同的输入,如果没有文件输出,则outputs.upToDateWhen { true }
。也许这符合您的需求。