Чтобы объяснить это кратко, вот пример:
В build.xml импортируется local-db.xml.И в local-db.xml есть цель с именем «разминка», которая вызывает одну цель третьего файла - local-gr.xml с помощью задачи.
Все общие свойства и определения пути к классам импортируются иустановить в build.xml.
в project.properties:
dest-dir=./destination
в build.xml:
<path id="gr-classpath"> ... </path>
<import file="local-db.xml" />
в local-db.xml:
<ant antfile="local-gr.xml" target="deploy" inheritAll="true" inheritRefs="true" />
В local-gr.xml есть две цели, подобные этой:
<target name="deploy">
<tar ....../>
<foreach list="${list1}" delimiter="," parallel="true" trim="true" param="item" target="deploy-single" />
</target>
<target name="deploy-single">
something using property ${dest-dir} and path "gr-classpath"
</target>
Теперь вот проблема:
Свойство $ {dest-dir} ипуть "gr-classpath" может быть использован в "deploy", потому что я установил inheritAll и inheritRefs, но его нельзя использовать непосредственно в "deploy-single".«Наследовать» не, когда цель вызывается foreach?
Мне удалось передать $ {dest-dir} в «deploy-single» с помощью, но я не нашел никакого способапередать classpathref "gr-classpath" в "deploy-single".
То, что я сделал, чтобы обойти это, это снова потребовал в "deploy-single", но мне это совсем не нравится.
Почему это происходит?Что я могу сделать, чтобы сделать его более элегантным?