为选定的一组项目执行选定的蚂蚁任务



我已经在游戏中定义了蚂蚁的目标,例如干净,建筑物,建造Android,deploy-ios,部署Android等。现在,我想定义一组代表我们游戏的新目标,例如game1,game2,game3。

我的目标是能够使用一组目标游戏和一组目标任务来启动ANT,以便为每个选定的游戏执行每个选定的任务。

示例伪代码:Foreach [game1, game3]: clean, build-ios, deploy-ios

如何用蚂蚁实现这一目标?一个要求是定义哪些游戏以及通过目标选择哪些任务,而不是在手动更改的文件中写下它们。

subant任务对于拥有共享相似结构的多个子标记的情况很有用。

在您的主要build.xml中,定义一个目标,该目标与所有广义构建目标一起摩擦游戏子目录中所需的构建目标。

<target name="deploy-all">
    <subant target="deploy">
        <dirset dir="." includes="game-*" />
    </subant>
    <echo message="All games deployed." />
</target>
<target name="deploy" depends="deploy-ios,deploy-android">
    <echo message="${ant.project.name} build complete." />
</target>
<target name="clean">
    <echo message="Cleaning ${ant.project.name}" />
</target>
<target name="build-ios" depends="clean">
    <echo message="Building iOS ${ant.project.name}" />
</target>
<target name="build-android" depends="clean">
    <echo message="Building Android ${ant.project.name}" />
</target>
<target name="deploy-ios" depends="build-ios">
    <echo message="Deploying iOS ${ant.project.name}" />
</target>
<target name="deploy-android" depends="build-android">
    <echo message="Deploying Android ${ant.project.name}" />
</target>

然后,在游戏 - *子目录中,创建一个简单的build.xml,可以链接回常见的构建。

game-1/build.xml:

<project name="game-1" default="build">
    <import file="../build.xml" />
    <echo message="=== Building Game 1 ===" />
</project>

game-2/build.xml:

<project name="game-2" default="build">
    <import file="../build.xml" />
    <echo message="=== Building Game 2 ===" />
</project>

编辑:如果您的构建需要根据用户的输入或预定义的属性包括/排除某些子标记,则可以修改subant任务的嵌套资源收集以适应此信息。

    <property name="game.includes" value="game-*" />
    <property name="game.excludes" value="" />
    <subant target="deploy">
        <dirset dir="." includes="${game.includes}" excludes="${game.excludes}" />
    </subant>

然后,用户可以运行一个命令,该命令可选地传递game.includes和/或game.excludes的值。如果未指定这些属性,则property任务上面定义的值将用作默认值。

相关内容

  • 没有找到相关文章

最新更新