我目前正在与一些喜欢设置定义环境特定变量而非使用属性文件的Ant任务的开发人员合作。他们似乎更喜欢这样做,因为它更容易输入:通过“属性任务”使用Ant属性文件的原因
ant <environment task> dist
比它是类型:
ant -propertyfile <environment property file> dist
因此,例如:
<project name="whatever" default="dist">
<target name="local">
<property name="webXml" value="WebContent/WEB-INF/web-local.xml"/>
</target>
<target name="remote">
<property name="webXml" value="WebContent/WEB-INF/web-remote.xml"/>
</target>
<target name="build">
<!-- build tasks here --->
</target>
<target name="dist" depends="build">
<war destfile="/dist/foo.war" webxml="${webXml}">
<!-- rest of war tasks here -->
</war>
</target>
我发现很难说服他们,属性文件是他们正确的路要走。我相信,属性文件是更好,因为:
- 他们提供了更大的灵活性 - 如果你需要一个新的环境,只需要添加一个新的属性文件
- 它更清晰这是怎么回事 - 你必须了解这一点“把戏”以实现他们正在完成的任务
- 不提供默认值和使用覆盖的功能 - 如果他们使用属性文件,他们可以在项目顶部提供默认值,但可以用文件覆盖它们
- 如果在命令行上未提供环境任务,脚本不会中断
当然,他们所听到的是他们需要更改他们的Ant脚本,并且必须在命令行上输入更多内容。
你可以通过“属性任务”提供任何有利于属性文件的其他参数吗?
所以。诅咒。真正。 – sjas 2013-02-25 13:24:13