繁体   English   中英

从文件中读取属性并在ant中分配给其他名称?

[英]Read property from file and assign to a different name in 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>

运行构建命令时的输出:

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>

我相信这可能是使用了简单的不正确的环境变量,即,默认情况下,Linux计算机上可以使用USER而无需由用户显式定义并且您正在使用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>

输出量

 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}来自系统登录用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM