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。
有人能帮我吗?
提前感谢。
如果我要这样做,不要选择使用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:Tempbuild2.xml
test:
[echo] Property username's value is mysystem
BUILD SUCCESSFUL
Total time: 0 seconds
希望这会有所帮助。