我正在尝试调整Ant build.xml脚本,以便能够在我们的本地办公室网络和AWS中工作。因此,我必须使用不同的ivysettings.xml文件,具体取决于构建的位置。在这两种情况下,构建都在Jenkins开始。我的想法是注入一个房产' aws = true'从AWS开始并且没有其他财产时。我们在AWS中使用Ant 1.7.1本地版本和更新版本,但我现在无法看到哪一个版本,build.xml应该能够在两者上运行,因此1.7.1是限制。如有必要,我可以升级。
有人可以帮助我使用为此目的调整build.xml文件所需的语法吗?
<!-- Resolve dependencies -->
<target name="resolve" description="retrieve dependencies with ivy">
<ivy:settings file="ivysettings.xml"/>
<ivy:retrieve sync="true"/>
</target>
如果aws = true我想使用名为ivysettings_aws.xml的文件,否则使用ivysettings.xml。
谢谢。
答案 0 :(得分:0)
我用ant_contrib来解决这个问题。
<!-- Resolve dependencies -->
<target name="resolve" description="retrieve dependencies with ivy">
<if>
<equals arg1="${aws}" arg2="true" />
<then>
<ivy:settings file="ivysettings_aws.xml"/>
</then>
<else>
<ivy:settings file="ivysettings.xml"/>
</else>
</if>
<ivy:retrieve sync="true"/>
</target>
作品。
答案 1 :(得分:0)
以下内容会更简单吗?
<property name="ivy.settings" value="ivysettings.xml"/>
<target name="resolve" description="retrieve dependencies with ivy">
<ivy:settings file="${ivy.settings}"/>
..
</target>
然后指定备用设置文件,如下所示:
ant -Divy.settings=ivysettings_aws.xml ..
答案 2 :(得分:0)
你应该使用new if/unless feature introduced with Ant 1.9.1去除对antcontrib的额外依赖,这对于近10年前停止服务,latest release 1.0b3。 像:
<project
xmlns:if="ant:if"
xmlns:unless="ant:unless"
>
<!-- Resolve dependencies -->
<target name="resolve" description="retrieve dependencies with ivy">
<ivy:settings file="ivysettings_aws.xml" if:true="${aws}"/>
<ivy:settings file="ivysettings.xml" unless:true="${aws}"/>
<ivy:retrieve sync="true" />
</target>
</project>
或者使用Mark O&#39;提出的解决方案。 Connor,但您需要记住更改-Divy.settings=...
参数以满足您的需求。