Модуляризация путей к классам в скриптах ant (например, через refid) - PullRequest
5 голосов
/ 01 февраля 2012

Поскольку мой файл ant довольно сложный, я хочу модульно оформить элементы classpath.

В настоящее время я использую refid следующим образом:

<path id="compile.classpath">
  <pathelement path="foo"/>
  <!-- ... -->
</path>

<path id="test.classpath">
  <path refid="compile.classpath"/>
  <pathelement path="bar"/>
  <!-- ... -->
</path>

<!-- ... -->

    <javac>
        <classpath refid="compile.classpath"/>
    </javac>

    <junit>
        <!-- ... -->
        <classpath>
             <path refid="test.classpath"/>
             <path path="bazz"/>
        </classpath>
    </junit>

<!-- ... -->

Это разумный подход? Или есть лучший?

Можно ли использовать идентификатор пути (compile.classpath) для refp classpath-refid (в <javac>)? (В настоящее время это работает, но refid требует, чтобы элементы были одного и того же типа. Поскольку path и classpath являются траекториальными структурами, они одного типа?)

1 Ответ

5 голосов
/ 01 февраля 2012

Я успешно использовал этот подход на предыдущей работе, и это был действительно единственный способ сохранить все в здравом уме.

В конце концов я сделал еще один шаг и поместил все определения своих сторонних библиотек в отдельноеext-libs.xml файл, так как некоторые из них были мульти-баночными библиотеками, и проверка того, что я все они содержал в моих окончательных военных файлах, становилась огромной проблемой.Таким образом, в моем основном build.xml (и других) я мог бы сослаться, скажем, на lib.jaxb, и мне не нужно было беспокоиться, что я везде обновил номера версий в именах файлов.

Вы уже придумали, как расширить ваш путь к классам компиляции, чтобы сделать ваш тестовый путь к классам, так что вы на правильном пути.

Короче, нажмите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...