gpt4 book ai didi

nant - 是否可以从包含的构建文件中覆盖 nant 目标?

转载 作者:行者123 更新时间:2023-12-04 12:25:57 27 4
gpt4 key购买 nike

我有一个通用的 common.xml 文件,其中包含许多在多个构建中重复使用的通用 nant 目标。我想要做的是“覆盖”其中一些 nant 目标,并在执行现有目标之前或之后包括其他步骤。

是否首先使用当前文件中的 nant 目标? IE。如果我在当前构建文件中创建一个与包含文件中的目标同名的 nant 目标,是否会调用该目标而忽略包含的目标?如果是这种情况,我可以执行并调用包含的目标,但看起来那将是递归调用,而不是包含的任务。

想法?

最佳答案

我有同样的问题(并找到了相同的结果),但我也找到了解决方法。请允许我举例说明。

您有一个 ProjectFile.build 和一个 CommonFile.build。假设您要覆盖名为“Clean”的目标。

您需要创建一个新文件(称为 CommonFile_Clean.build),其中包含:

<?xml version="1.0"?>
<project>
<target name="Clean">
<echo message="Do clean stuff here" />
</target>
</project>

在 CommonFile.build 中,您有条件地包含 CommonFile_Clean.build:
<?xml version="1.0"?>
<project>
<echo message="checking Clean definition..." />
<if test="${not target::exists('Clean')}">
<echo message="Clean target not defined." />
<include buildfile="CommonFile_Clean.build" />
</if>
</project>

在 ProjectFile.build 中,您可以定义 Clean 目标(在这种情况下将不使用 CommonFile_Clean.build)或使用 CommonFile_Clean.build 中定义的默认实现。

当然,如果你有大量的目标,这将是相当多的工作。

希望有帮助。

关于nant - 是否可以从包含的构建文件中覆盖 nant 目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1158882/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com