我正在定义一个新的构建文件,并且(出于本问题范围之外的原因)我需要将其放置在 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/