gpt4 book ai didi

ant - 在 ANT 'copy' 任务中禁用包括嵌套 元素的过滤

转载 作者:行者123 更新时间:2023-12-04 06:37:02 24 4
gpt4 key购买 nike

要求:
我们有一个用于 DEV 和 RELEASE 模式的 ANT 构建文件。我们希望在 DEV 模式下启用过滤并在 RELEASE 模式下禁用它。由于我们对两种模式(DEV 和 RELEASE)使用相同的构建文件,因此我们正在寻找基于构建模式打开/关闭过滤的方法。

到目前为止我的分析:
根据文档,可以禁用过滤,但将始终使用嵌套元素,即使此属性为 false。 http://ant.apache.org/manual/Tasks/copy.html
请注意,在我们的案例中,我们不能离开元素。

题:
我想知道是否有一种解决方法可以禁用过滤,包括“复制”任务中的嵌套元素。

最佳答案

你可以通过一个什么都不做的过滤器来达到没有过滤器的效果。
Filtersets support id/refids ,因此您可以定义两个 - 一个开发版和一个发布版 - 然后使用基于模式的条件在它们之间切换。像这样的东西:

<property name="mode" value="release" /><!--Or value="dev"-->

<filterset id="dev.filter.id">
<filter token="MODE" value="dev" />
</filterset>

<filterset id="release.filter.id" /><!--Null filterset-->

<!--Choose filterset id depending on mode-->
<condition property="copy.filter.id"
value="dev.filter.id"
else="release.filter.id">
<equals arg1="${mode}" arg2="dev"/>
</condition>

<copy file="input.txt" tofile="output.txt">
<filterset refid="${copy.filter.id}" />
</copy>

如果您在开发模式和 Release模式之间有许多不同的行为,将它们放在单独的构建配置文件中并仅加载当前模式的一个可能是有意义的。

关于ant - 在 ANT 'copy' 任务中禁用包括嵌套 <filterset> 元素的过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4756197/

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