从文件中读取属性并在ant中指定其他名称?

时间:2016-01-01 05:11:48

标签: java ant

我正在尝试从属性文件中读取属性并分配给其他名称,但它不起作用。我是蚂蚁的新手所以我想我错过了一些基本的东西。

build.properties:

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>

运行build命令时的输出:

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

2 个答案:

答案 0 :(得分:1)

尝试按如下方式设置环境变量:

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>

答案 1 :(得分:0)

我认为可能是使用简单的不正确的环境变量,即,默认情况下USER在Linux机器上可用,而无需由用户明确定义,并且您正在使用USERNAME。我认为这是用户期望的,因为他试图从属性打印值,而另一个是从系统定义的默认值。

因此,只需替换build.propertiesbuild.xml文件中的上述更改。

<强> build.properties

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>

<强>输出

&#13;
&#13;
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
&#13;
&#13;
&#13;

在上文中,如果您注意到,${USER}来自系统登录用户的属性文件${env.USER}