Сборка веб-приложения Apache Ant + Ivy, развернутая на локальном Tomcat - PullRequest
2 голосов
/ 10 января 2009

Я буду использовать Apache Ant и Apache Ivy для создания веб-приложения, которое развертывается на локальном экземпляре Tomcat (во время разработки). У меня есть несколько вопросов:

  1. Я хочу получить большую часть своих зависимостей из репозиториев Maven2, что прекрасно работает, но для JAR-сервлета я хотел бы использовать тот, который предоставляет Tomcat. Есть ли способ сделать это с помощью Ivy? И что ты думаешь об этом?
  2. Я загружаю Ivy JAR с помощью Ant, чтобы «автоматически установить» его в ~ / .ivy2 / jar / ivy.jar, и у меня есть кеш Ivy по умолчанию - ~ / .ivy2 / cache. Я специально держу оба этих места за пределами каталога проекта. Хорошая идея?
  3. У вас есть пример использования Ant для файла сборки, Ivy для разрешения зависимостей, компиляции файла WAR и развертывания его в локальной (на данный момент) установке Tomcat? Я ищу что-то, что можно использовать в качестве наилучшей практики, и затем я смогу ее изменить.
  4. Я использовал несколько примеров на веб-сайте Ivy и изменил их. Есть что-нибудь, что я должен изменить? Файл сборки можно увидеть по адресу http://pastebin.com/f7b34abc2, так как у меня были проблемы с вставкой кода XML сюда.

(Обратите внимание, что я не ищу предложение использовать Maven2 , даже если это предложение является правильным.)

1 Ответ

2 голосов
/ 11 января 2009

Во время выполнения tomcat будет использовать свой собственный, поскольку загрузчик классов исключит любой jar с javax.servlet.Servlet в нем. Если вам действительно нужно скомпилировать его, вам придется сделать это в ant-скрипте и либо скопировать его, либо сослаться на него в classpath компиляции.

Что касается других вещей, то загрузка ivy по требованию является хорошей идеей, поскольку она предотвратит загрузку jvy jar в репозиторий проекта, как я делал это в прошлом, независимо от того, загружаете ли вы его в каталог проекта или пользователь home вопрос личных предпочтений. Кэш ivy, с другой стороны, должен использоваться совместно с другими проектами, поэтому домашний каталог пользователя является хорошим местом.

Построение файла войны ничем не отличается после того, как вы сделали ivy: извлекайте файлы, необходимые для работы с jar, локально для проекта, просто используйте задачу ant war, чтобы создать войну как обычно. Это одно из преимуществ ivy: после загрузки jar-файлов больше не нужно ничего делать в сборке, и вы можете просто использовать ant для компиляции и упаковки вашего проекта.

Быстро взглянул на ваш файл сборки, выглядит совершенно вменяемым.

Надеюсь, это поможет.

...