我目前正在與一些喜歡設置定義環境特定變量而非使用屬性文件的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