Как я предотвращаю, что муравей вызывает муравьиные файлы дважды и вызывает файлы в правильной последовательности - PullRequest
0 голосов
/ 05 июня 2018

Я не пробовал этого до сих пор, но я хочу предотвратить это с самого начала.

У меня около 50 проектов с существующим build.xml.Теперь я хочу создать некоторые ant-скрипты (call_needed_files.xml) для вызова ant-скриптов зависимых проектов - для некоторых проектов мне нужно создавать другие проекты, потому что им нужен этот jar-файл.

Например, у меня есть эта консталляция:

Workspace
   Project 1
     call_needed_files.xml
     build.xml
   Project 2
     call_needed_files.xml
     build.xml
   Project 3
     call_needed_files.xml
     build.xml

У каждого build.xml есть цель "build" и другие цели с тем же именем.

<!-- project1/call_needed_files.xml -->
<project name="build project 1">
   <!-- build.xml of the dependent projects -->
   <ant antfile="../project2/call_needed_files.xml">
   <ant antfile="../project3/call_needed_files.xml">

   <!-- build.xml of the own project -->
   <ant antfile="build.xml">
</project> 

<!-- project2/call_needed_files.xml -->
<project name="build project 2">
   <!-- build.xml of the dependent projects -->
   <ant antfile="../project3/call_needed_files.xml">

   <!-- build.xml of the own project -->
   <ant antfile="build.xml">
</project> 

<!-- project3/call_needed_files.xml -->
<project name="build project 3">
   <!-- build.xml of the own project -->
   <ant antfile="build.xml">
</project> 

Итаккак я могу предотвратить, чтобы сборка проекта 3 вызывала дважды?... или это "стандартная особенность" муравья?

Есть ли возможность использовать функцию "target related = 'othertargets'" для всех этих проектов, чтобы мне не нужно было вызывать проектыв правильной последовательности?

1 Ответ

0 голосов
/ 05 июня 2018

Существует ли возможность использовать функцию «цель зависит =« другие цели »» для всех этих проектов, чтобы мне не нужно было вызывать проекты в правильной последовательности?

Вы правильно догадались!Цели, определенные в «зависимости», выполняются только один раз.

https://ant.apache.org/manual/targets.html

Сверху URL:

После A, затем B, затем C были выполнены,выполнение возвращается к списку зависимостей D, который не будет вызывать B и A, поскольку они уже были вызваны в процессе разрешения зависимостей для C и B соответственно как зависимости D

Итак, вы можете добавитьте цели в «зависимости», которые необходимо выполнить только один раз.

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