Apache Ant正在创建奇怪的目录

IAm*_*aja 0 java ant build.xml

我正在定义一个新的构建文件和(出于这个问题范围之外的原因)我需要把它放在里面projectRoot/build,而不是正常projectRoot:

MyProject
    src/
        <Java source>
    build/
        build.xml
        build.properties
Run Code Online (Sandbox Code Playgroud)

里面build.xml:

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

    <target name="mkdirs">
        <mkdir dir="${gen.dir}"/>
    </target>
</project>
Run Code Online (Sandbox Code Playgroud)

内部build.properties:

gen.dir=generated
Run Code Online (Sandbox Code Playgroud)

所以,如果我从命令行运行mkdirs,你会期望它产生以下目录结构:

MyProject
    src/
        <Java source>
    generated/
    build/
        build.xml
        build.properties
Run Code Online (Sandbox Code Playgroud)

但相反,我得到:

MyProject
    src/
        <Java source>
    ${gen.dir}
    build/
        build.xml
        build.properties
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?为什么Ant不能正确导入build.properties文件?或者还有其他事情发生了吗?我怀疑它与某些事情有关basedir,但我无法改变构建必须存在于内部的事实build/build.xml.提前致谢!

Bri*_*ian 5

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

<property file="build/build.properties"/>
Run Code Online (Sandbox Code Playgroud)

它应该工作.