首页 > 解决方案 > Ant 在构建时无法识别变量

问题描述

先说我从未使用过 Ant 或 XML,目前正在学习如何使用它。使用硬编码目录时,构建工作正常,但是一旦我引入变量,它就开始引起一些问题......

这是我的 build.xml:

<?xml version="1.0" ?>
<project name="builder" default="main">
    <property name="message" value="Building the .jar file." />
    <property name="java-dir" value="src" description="java directory" />
    <property name="txt-dir" value="text" description="text directory" />
    <property name="javadoc-dir" value="docs" description="javadoc directory" />
    <property name="jar-dir" value="bin" description="jar directory" />
    <property name="class-dir" value="classes" description="class directory" />

    <target name="main" depends="compile">
        <echo>
            $(message)
        </echo>
    </target>
    <target name="compile" depends="document">
        <javac srcdir="$(java-dir)" destdir="$(class-dir)" />
    </target>
    <target name="compress">
        <jar jarfile="$(jar-dir)/Main.jar" 
             manifest="$(txt-dir)/manifest.txt" 
             basedir="$(jar-dir)" 
             includes="$(class-dir)/*.class" />
    </target>
    <target name="document" depends="compress">
        <javadoc sourcefiles="$(jar-dir)/Builder.java" destdir="$(javadoc-dir)">
        </javadoc>
    </target>
</project>

这是我Ant在 Unix 终端上运行时得到的结果。

BUILD FAILED
/users/REDACTED/REDACTED/REDACTED/REDACTED/build.xml:22: Manifest file: /users/REDACTED/REDACTED/REDACTED/REDACTED/$(txt-dir)/manifest.txt does not exist.

如您所见,$(txt-dir)/manifest.txt出现而不是text/manifest.txt. 我已经尝试搜索了一下,但我似乎无法找到发生这种情况的任何原因。有任何想法吗?

标签: xmlvariablesant

解决方案


正如马丁克莱顿在评论中提到的那样,使用大括号而不是圆括号!我的讲师在他的幻灯片中使用了错误的括号。谢谢!


推荐阅读