我正试图从属性文件中读取一个属性并分配给另一个名称,但它不起作用。我是蚂蚁的新手,所以我想我错过了一些基本的东西。
内部版本属性:
USERNAME=deter_dangler
build.xml:
<project name="Simple Ant example" default="test" basedir=".">
<property file="build.properties"/>
<property environment="env"/>
<property name="uname" value="${env.USERNAME}"/>
<target name="test">
<echo message="uname property value is ${uname}"/>
<echo message="env.USERNAME property value is ${env.USERNAME}"/>
</target>
</project>
运行构建命令时的输出:
javanoob@DELL:~/Desktop$ ant
Buildfile: /Desktop/build.xml
test:
[echo] uname property value is ${env.USERNAME}
[echo] env.USERNAME property value is ${env.USERNAME}
BUILD SUCCESSFUL
Total time: 0 seconds
尝试如下设置环境变量:
USERNAME=deter_dangler ant
或者,如果你想使用属性文件,那么简化你的ANT文件如下:
<project name="Simple Ant example" default="test" basedir=".">
<property file="build.properties"/>
<target name="test">
<echo message="uname property value is ${USERNAME}"/>
</target>
</project>
我认为这可能是使用的简单错误的环境变量,即默认情况下,USER
在linux机器上可用,而无需用户明确定义,并且您使用的是USERNAME
。我认为这就是用户所期望的,因为他试图从属性中打印值,并从系统定义的默认值中打印另一个值。
因此,只需替换build.properties
和build.xml
文件中的上述更改。
内部版本属性
USER=deter_dangler
build.xml
<project name="Simple Ant example" default="test" basedir=".">
<property file="build.properties"/>
<property environment="env"/>
<property name="uname" value="${USER}"/>
<target name="test">
<echo message="uname property value is ${uname}"/>
<echo message="env.USER property value is ${env.USER}"/>
</target>
</project>
输出
Buildfile: /home/apps/Documents/so/34553709/build.xml
test:
[echo] uname property value is deter_dangler
[echo] env.USER property value is apps
BUILD SUCCESSFUL
Total time: 1 second
在上文中,如果您注意到,${USER}
取自属性文件,${env.USER}
取自系统登录用户。