java - Apache Ant 正在创建奇怪的目录

标签 java ant build.xml

我正在定义一个新的构建文件,并且(出于本问题范围之外的原因)我需要将其放置在 projectRoot/build 中,而不是正常的 projectRoot :

MyProject
    src/
        <Java source>
    build/
        build.xml
        build.properties

所以在 build.xml 中:

<project name="myproject-build" basedir="..">
    <property file="build.properties"/>

    <target name="mkdirs">
        <mkdir dir="${gen.dir}"/>
    </target>
</project>

build.properties内部:

gen.dir=generated

因此,如果我从命令行运行 mkdirs,您会期望它会生成以下目录结构:

MyProject
    src/
        <Java source>
    generated/
    build/
        build.xml
        build.properties

但是,我得到的是:

MyProject
    src/
        <Java source>
    ${gen.dir}
    build/
        build.xml
        build.properties

发生什么事了?为什么 Ant 无法正确导入 build.properties 文件?还是有其他事情发生?我怀疑它与 basedir 有关,但我无法改变构建必须存在于 build/build.xml 中的事实>。提前致谢!

最佳答案

你的怀疑是正确的。设置 basedir 会更改查找 build.properties 文件的位置。将您的导入更改为:

<property file="build/build.properties"/>

它应该可以工作。

关于java - Apache Ant 正在创建奇怪的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410157/

相关文章:

java - Ant <属性> 任务 : is there a difference between 'value' and 'location' ?

c++ - 将 ant 命令行选项传递给 exec'd ant 进程?

ant - Ant 中的条件连接

java - 从 Ivy 依赖定义 Ant 任务

java - 在 Android 中检索 JSON 的问题

java - 拆分以下命令

java - 使用 maven-tomcat-plugin 启动多个 tomcat 实例

android - Ant 中属性文件中的变量

java - 如何为 Ant 构建配置 Ivy

java - 使用相同的变量进行处理