参数化Ant脚本以构建同一文件的两个版本

时间:2013-10-23 21:37:32

标签: ant

我们有一个Java applet项目,我们使用Ant生成包装器HTML,看起来有点像这样:

<target name="build-applet" description="Build web applet" depends="set-build-properties, set-properties">  
    <antcall target="clean" />
    <antcall target="clean-applet" />
    <antcall target="set-version" />
    <antcall target="compile" />
    <antcall target="jar" />
    <antcall target="applet" />
</target>

<target name="applet">      
    <replace file="${applet.dir}/${applet.html.file}">          
        <replacefilter token="@jar.file@" value="${applet.jar.file}"/>
        <replacefilter token="@assets.file@" value="${applet.assets.file}"/>
        <replacefilter token="@codebase@" value="${applet.codebase}"/>
</target>

请注意,${applet.codebase}必须是加载小程序的网址,例如mysite.com/game。它在属性文件中设置。

现在我希望能够将这个applet构建到两个不同的位置,这是实时/测试设置的一部分。例如,一个访问mysite.com/game,另一个访问mysite.com/test。除了${applet.codebase}之外,我几乎可以使用它,因为在每种情况下都需要有所不同。我以为我可以${applet.codebase}${applet.codebase_test},但我不知道该怎么做。也许有办法将标记从applet传递到build-applet目标,并添加两个顶级目标build-applet-livebuild-applet-test,只需调用build-applet参数。

1 个答案:

答案 0 :(得分:1)

为什么不简单地ant -Dapplet.codebase=whatever build.xml,意味着将$ {applet_codebase}设置为userproperty(=通过-Dkey = value设置的属性)?