У нас есть куча скриптов Ant, по одному для каждого из наших подпроектов. В конце концов, мы хотим запустить все это из сценария мастер-сборки и сделать некоторые другие исправления для упаковки всего проекта. Каждый из отдельных скриптов Ant имеет имя ant.xml
и находится в подкаталоге его проекта. Каждый использует Ant import
для импорта ant-commons.xml
, а затем переопределяет некоторые из конкретных целей.Почему файл сборки Ant Ant не работает правильно?
Например, один из проектов перекрывает compile
цель, чтобы установить classpath
соответствующим образом и установить source
и target
до 1,5 (АНТ-Обще использует 1.4)
Теперь, теоретически, все это звучит легко. Вот мастер сценарий сборки:
<project name="Retain" basedir="." default="main">
<target name="main">
<ant dir="SharedJava" antfile="ant.xml" target="clean"/>
<ant dir="SharedJava" antfile="ant.xml" target="copy_current"/>
<ant dir="GWEasySoap" antfile="ant.xml" target="clean"/>
<ant dir="GWEasySoap" antfile="ant.xml" target="copy_current"/>
<ant dir="RetainLib" antfile="ant.xml" target="clean"/>
<ant dir="RetainLib" antfile="ant.xml" inheritAll="false" target="copy_current"/>
<ant dir="RetainIndex" antfile="ant.xml" target="clean"/>
<ant dir="RetainIndex" antfile="ant.xml" target="copy_current"/>
<ant dir="RetainPersist" antfile="ant.xml" target="clean"/>
<ant dir="RetainPersist" antfile="ant.xml" target="copy_current"/>
</target>
</project>
Что происходит на самом деле:
Первые несколько подпроектов работать нормально. RetainLib
, который, по сути, должен иметь ссылку на банку SharedJava
, затем не получается, скуля о том, как он не может ее найти. Когда я удалил RetainLib
, RetainIndex
не смог, скуля о том, как вы не должны использовать generics в файле цели 1.4.
После игры я определил довольно просто, что они настаивали на запуске цели компиляции внутри ant-commons
вместо переопределенного.
Почему? Как я могу обойти это? (Элегантно я имею в виду - очевидно, что я мог бы полностью удалить ан-коммоны, и я уверен, что все будет работать.)
Nope. Сожалею. Ваш совет в точности неправильный, по крайней мере, от результата. 1. Если dir удален и inheritFalse, сборка завершится неудачно, потому что скрипт ant.xml теперь запутан в отношении его каталога. 2.С восстановлением dir в его славное и законное место :) и inheritFalse сборка завершается неудачно, точно так же, как описано. – 2009-04-18 07:20:52