环境变量在ant脚本中无法识别

时间:2012-07-03 15:09:04

标签: java ant junit environment-variables

我有一个简单的Ant脚本,我想使用环境变量JUNIT_HOME传递给标记。环形变量在回显时似乎有效:

<echo message = "JUNIT_HOME: ${env.JUNIT_HOME}" />

产生正确的输出:

JUNIT_HOME:“C:\ Program Files(x86)\ eclipse \ plugins \ org.junit_4.8.2.v4_8_2_v20110321-1705”

但是当我以下面的方式使用它时,构建失败声称它找不到junit。

<target name="compile" depends="checkJUnitHome, init" description="compile the source ">
    <javac srcdir="${src}" destdir="${build}" classpath="${env.JUNIT_HOME}\junit.jar">
        <classpath refid="project.classpath" />
    </javac>
</target>

如果我用完整路径替换环境变量。它工作正常。

我错过了什么?

亲切的问候,

马克科尔曼

2 个答案:

答案 0 :(得分:0)

您必须先设置<property environment="env"/>才能访问环境。

修改

您可以尝试将classpath变量作为属性移动到内部classpath元素。见这个:

<target name="compile" depends="checkJUnitHome, init" description="compile the source ">
    <javac srcdir="${src}" destdir="${build}">
        <classpath>
            <path refid="project.classpath" />
            <path location="${env.JUNIT_HOME}\junit.jar" />
        </classpath>
    </javac>
</target>

也许是它的覆盖...

答案 1 :(得分:0)

正如罗伯特指出的那样,环境变量已用双引号保存。删除这些修复了问题。

感谢。