Допустим, у меня есть 3 ANT-проекта, каждый со своим сценарием build.xml, расположенным в папке верхнего уровня
proj1
file1.java
proj2
file2.java
proj3
file3.java
Я настроил Jenkins для построения этих 3-х проектов, и он создает их и сохраняет выходные данные в трехотдельные папки.
/output/proj1/2012-02-28_20-11-06/proj1/distribution/proj1.jar
/output/proj2/2012-02-28_20-11-08/proj2/distribution/proj2.jar
/output/proj3/2012-02-28_20-11-09/proj3/distribution/proj3.jar
ANT-скрипт - это тот, который помещает файл jar в папку дистрибутива.Я хочу использовать эти файлы JAR в другом проекте, который создает файл войны.
Файлы jar, которые создаются в каждом проекте, используются для создания файла WAR.Можно ли как-нибудь настроить Jenkins для сборки proj1, proj2, proj3, а затем скопировать файлы jar в определенное место, в котором будет находиться другой проект ANT, который при запуске создаст файл war?Или это нужно кодировать с помощью ANT?
Кроме того, можно ли настроить jenkins на несколько проверок перед запуском сценария сборки ANT.Я использую CVS и хотел бы сделать 3 извлечения, используя разные теги перед запуском сборки.
Редактировать
Я отправил вопрос прошлой ночью перед тем, как ложиться спать.Читая сегодня снова, я думаю, что это недостаточно ясно, поэтому я уточню требование еще раз.У меня есть 4 проекта, которые используют ANT в качестве механизма сборки и все они хранятся в хранилище CVS.Все 4 проекта при сборке формируют файл WAR, который развертывается на сервере приложений Tomcat.
proj1
- file1.java
- file2.java
proj2
- file3.java
- file4.java
proj3
- file3.java
- file4.java
proj4
- jsp
- home.jsp
- css
- home.css
- WEB-INF
- lib
- classes
- web.xml
Каждый проект (кроме proj4) имеет файл сборки ANT, который создает проект и создает файл JAR, который он хранит в папке «Distribution» в корневой папке проекта.Например, после сборки proj1 он будет выглядеть следующим образом:
proj1
- file1.java
- file2.java
- distribution
- classes
- file1.class
- file2.class
- proj1.jar
Proj4 зависит от proj1, proj2 и proj3 в том, что ему сначала нужно скопировать все файлы jar в свою рабочую область, прежде чем он создаст файл war,Файл сборки ANT для project4 копирует файлы JAR из proj1, 2 и 3 и создает файлы WAR.Полученный WAR-файл содержит следующую структуру
proj4
- jsp
- home.jsp
- css
- home.css
- WEB-INF
- lib
- proj1.jar
- proj2.jar
- proj3.jar
- classes
- web.xml
Теперь, чтобы автоматизировать вышесказанное, мне нужно как-то настроить Jenkins и ANT для выполнения следующих действий (в указанном порядке)
- Checkout proj1 from CVS using RELEASE1.1 tag
- Build proj1
- Checkout proj2 from CVS using RELEASE1.2 tag
- Build proj2
- Checkout proj3 from CVS using RELEASE1.1 tag
- Build proj3
- Checkout proj4 from CVS using RELEASE1.1 tag
- Copy the proj1.jar, proj2.jar, proj3.jar from the previous 3 builds and copy them to the proj4 WEB-INF/lib folder.
- Build proj4
- Deploy the WAR file.
IВчера поиграл с Дженкинсом и сумел настроить его для сборки каждого из проектов, но каждый файл JAR оказывается в несвязанной папке.Как я могу настроить Jenkins для создания проектов, как я описал выше?
Среда имеет следующие свойства
Build tool - ANT
OS - Solaris
Maven, вероятно, будет работать с этим, но в настоящее время нет планов по внедрению Maven.Если есть простой инструмент сборки, похожий на Maven, который я могу использовать для простого хранения нужных мне библиотек, для которых не требуется внешний доступ, пожалуйста, дайте мне знать.
Заранее спасибо.