0

有没有办法在“调用 Ant”构建步骤中动态调用 Ant 目标?假设您有一个 build.xml:

<target name="1" description="1">
    <exec executable="${RES_DIR}/1.sh" failonerror="true">
    </exec>
</target>

<target name="2" description="2">
    <exec executable="${RES_DIR}/2.sh" failonerror="true">
    </exec>
</target>

<target name="3" description="3">
    <exec executable="${RES_DIR}/3.sh" failonerror="true">
    </exec>
</target>

并希望您的 Jenkins 构建都使用相同的 build.xml,但能够为每个构建调用某些目标。我不想在每次需要创建项目时对这些目标进行硬编码,因为我希望它能够自动完成。这是可能的还是您必须事先创建一个项目并手动设置您的 Ant 目标?

4

2 回答 2

1

一个简单的技巧是使用sif上的属性target

例如:

<target name="run" depends="1,2,3" />

<target name="1" description="1" if="run1">
    <exec executable="${RES_DIR}/1.sh" failonerror="true">
    </exec>
</target>

<target name="2" description="2" if="run2">
    <exec executable="${RES_DIR}/2.sh" failonerror="true">
    </exec>
</target>

<target name="3" description="3" if="run3">
    <exec executable="${RES_DIR}/3.sh" failonerror="true">
    </exec>
</target>

这样,您调用目标run并将属性设置runX为任意值(true 通常是一个不错的选择)。只有目标 X 会实际运行。

于 2013-06-20T19:57:42.293 回答
0

这可能会正常工作,但是为了满足 Jenkins 构建接口要求而更改构建有点不方便。我通常这样做的方式是设置一个构建参数,比如一个“选择”,并让用户可以从该下拉列表中选择他们想要调用的目标。

假设选择参数称为目标,那么您在“调用蚂蚁”构建部分中需要做的就是引用 %target% ,詹金斯将为您进行替换。

您是否使用“选择”或其他类型的构建参数(例如文本)将取决于您的特定需求。

于 2015-02-20T06:01:11.013 回答