Как построить проект и его зависимости, используя Ant и Ivy - PullRequest
2 голосов
/ 18 февраля 2010

У меня есть WebApp с двумя зависимостями, как показано ниже. Я хотел бы создать файл войны для развертывания на Tomcat с использованием Ant + Ivy.

+
+-MyWebApp // this Dynamic Java Web Application (deployed Tomcat and launches
           // a thread contained in MyApp) 
+-MyApp // this is just a vanilla Java Application
+-MyCommonStuff // these are common classes shared between MyApp and MyWebApp
                // Ex. Database access code & business classes

Используя документацию по Ant, я разработал, как создавать соответствующие файлы build.xml для каждого проекта. Другими словами, каждый проект имеет независимый build.xml, поэтому для сборки всего проекта все, что мне нужно сделать, это:

mkdir build
cd build
export SOME_COMMONBASE=`pwd`
svn co https://mybuildmachine.lan/svn/mycommonstuff mycommonstuff
cd mycommonstuff
ant
cd ..
% this produces mycommonstuff.jar
svn co https://mybuildmachine.lan/svn/myapp myapp
cd myapp
ant
cd ..
% this produces myapp.jar
svn co https://mybuildmachine.lan/svn/mywebapp mywebapp
cd mycommonstuff
ant
cd ..
% this produces mywebapp.war and deploys it to Tomcat

Теперь я хотел бы собрать все это вместе, чтобы я мог начать единственную сборку. На первый взгляд кажется, что я должен каким-то образом создать Iv build.xml, который связывает зависимости. Тем не менее, я прочитал документацию по Ivy и Googled для примеров, но я все еще не знаю, как я могу выполнить эту задачу. Кто-нибудь может дать мне несколько советов о том, как я могу это сделать?

1 Ответ

0 голосов
/ 18 февраля 2010

То, что вы хотите сделать, это использовать Задачи Ant Ivy для проводки. Там довольно много мелких деталей, но в основном вам нужен собственный репозиторий Ivy, а затем просто опубликовать свои собственные артефакты проекта, чтобы использовать их в других местах.

Для проектов библиотеки JAR:

  • Используйте ivy: retrieve , чтобы получить зависимости, чтобы вы могли встроить проект в библиотеку.
  • Используйте ivy: publish , чтобы опубликовать встроенный JAR в свой собственный репозиторий Ivy.

Для проектов WAR:

  • Еще раз, используйте ivy: retrieve , чтобы получить зависимости, чтобы вы могли встроить проект в WAR.

Что касается других частей, то в самом Ant есть много задач, которые вам могут помочь, а затем есть некоторые задачи, предоставляемые другими, такие как svn task от tigris для получения источника из SVN и дополнительный SCP Ant для SCP. задача для передачи файла WAR на внешний сервер.

...