我想根据属性的来源更改我的一个蚂蚁目标中的逻辑。我们的ant目标的初始化导入属性文件,但是当我们想要覆盖属性时,我们在命令行上指定它。是否可以让ant目标知道属性是来自初始属性文件还是命令行?
如果属性文件具有属性" my.property"然后命令行显示:
ant -buildfile buildthis.xml my.target.to.call -Dmy.property=overridesfilevalue
" my.target.to.call"能够根据" my.property"来检测和定义逻辑。是从命令行传入的?
答案 0 :(得分:2)
Ant有一个名为isset
的条件,它将检查是否设置了属性。您可以在加载属性文件之前运行此条件,然后将构建逻辑基于结果。
示例:
<condition property="property.override.detected">
<isset property="property.to.override" />
</condition>
<property file="build.properties" />
<target name="do-this-if-the-property-was-overridden" if="property.override.detected">
...
</target>
<target name="do-this-if-the-property-was-not-overridden" unless="property.override.detected">
...
</target>
<target
name="default"
depends="
do-this-if-the-property-was-overridden,
do-this-if-the-property-was-not-overridden"
/>