config.properties的值如下:
username = system
password = ******
build.xml具有默认属性值,如下所示:
<target name="load-config-properties"
<property file="${config.properties}"/>
<echo>Default config params</echo>
<property name="username" value=""/>
<property name="password" value=""/>
现在我不想既不使用config.properties也不使用build.xml属性。所以我写了一些ant输入任务来覆盖控制台的config.properties,如下所示
<input message="Enter password for username: " addproperty="input.password">
<handler type="secure"/>
</input>
var name="password" value="${input.password}"/>
我可以从控制台提供密码,但它不会覆盖config.properties。
有人能帮助我吗?
先谢谢。
答案 0 :(得分:0)
如果我这样做,不要选择使用input
,而应选择系统参数。
以下是示例构建脚本:
<project name="overrideProperty" basedir="." default="test">
<property name="username" value="system"/>
<target name="test" description="check if the property can be overridden runtime">
<echo message="Property username's value is ${username}"/>
</target>
</project>
常规:使用属性中定义的相同值
如果您想使用属性username
中定义的相同值,请像定期一样调用ant build,例如:
ant test
<强>输出:强>
test:
[echo] Property username's value is system
BUILD SUCCESSFUL
Total time: 0 seconds
使用系统参数 覆盖属性值运行时
如果要覆盖username
属性运行时(不修改构建脚本,则调用ant命令,如下所示:
ant test -Dusername="mysystem"
输出
Buildfile: D:\Temp\build2.xml
test:
[echo] Property username's value is mysystem
BUILD SUCCESSFUL
Total time: 0 seconds
希望这有用。