Это работает в Ant 1.7.1, но больше не работает в Ant 1.8.1.Это ошибка или есть новый и / или лучший способ добиться того, что я пытаюсь сделать?
Проект состоит из 2 компонентов, каждый компонент имеет свой собственный файл сборки и файл свойств, естьтакже файл сборки верхнего уровня и файл свойств для общих целей и свойств муравья.Это выглядит так:
- / project /
- component-a /
- build.properties
- build.xml
- компонент-b /
- build.properties
- build.xml
- build.properties
- build.xml
/ project / build.properties:
common.root.dir=/project
/ project / build.xml:
<project name="common">
<dirname file="${ant.file.common}" property="common.base.dir"/>
<loadproperties srcfile="${common.base.dir}/build.properties"/>
</project>
/ project / component-b / build.properties:
dist.dir=${common.root.dir}/component-b/dist
/ project / component-b / build.xml:
<project name="component-b">
<dirname property="component.b.base.dir" file="${ant.file.component-b}"/>
<import file="${component.b.base.dir}/../build.xml"/>
<loadproperties srcfile="${component.b.base.dir}/build.properties"/>
</project>
/ project / component-a / build.properties:
dist.dir=${common.root.dir}/component-a/dist
/ project / component-a / build.xml:
<project name="component-a">
<dirname property="component.a.base.dir" file="${ant.file.component-a}"/>
<property name="project.root.dir" location="${component.a.base.dir}/.."/>
<import file="${project.root.dir}/build.xml"/>
<loadproperties srcfile="${component.a.base.dir}/build.properties"/>
<loadproperties srcfile="${project.root.dir}/component-b/build.properties" prefix="component.b"/>
<target name="print.unresolved.property">
<echo>${component.b.dist.dir}</echo>
</target>
</project>
Чтобы увидеть ошибку, выполните: ant -f / project / component-a/build.xml print.unresolved.property
При использовании Ant 1.8.1 вывод будет:
print.unresolved.property:
[echo] ${common.root.dir}/component-b/dist
Почему файл common.root.dir не разрешается в / project