Создание веб-приложения Java за один шаг - PullRequest
0 голосов
/ 15 февраля 2010

Шаг два из « Тест Джоэла: 12 шагов к лучшему коду » гласит «Можете ли вы сделать сборку за один шаг?» Мой ответ на это в настоящее время нет. Моя заявка имеет следующую структуру:

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

Для сборки и развертывания моего программного обеспечения я выполняю следующие шаги:
1. Оформить заказ MyApp, MyWebApp, MyCommonStuff от SVN
2. собрать MyCommonStuff.jar и скопировать в каталог «libs»
3. собрать MyApp и скопировать в каталог «libs»
4. build MyWebApp.war (файл Ant build.xml указывает, где расположены MyApp.jar и MyCommonStuff.jar)
5. Часть развертывания в build.xml использовала задачи развертывания Tomcat для развертывания на сервере Tomcat.

Мой вопрос: применимо ли вышеизложенное правило Джоэля к этому сценарию? то есть должен существовать «основной» сценарий сборки, который выполняет шаги с 1. по 5.?
Если скрипт просто обычный скрипт # / bin / sh или есть инструменты, которые я могу использовать. Я предпочел бы придерживаться команд консоли Ant и linux.
Спасибо

Ответы [ 3 ]

6 голосов
/ 15 февраля 2010

Вы можете (и должны) использовать maven2 . Поддерживает все необходимое (через плагины). Вам просто нужно соответствовать правилам каталога.

Кроме того, я бы предложил механизм непрерывной интеграции, который примет вашу конфигурацию maven, выполнит и развернет все. Hudson и TeamCity являются хорошими вариантами.

1 голос
/ 15 февраля 2010

Вы должны сделать глобальный Ant-скрипт, вызывая все маленькие части муравья через Ant ant task .

Редактировать после прочтения других ответов: Вы также должны использовать Maven. Но если Maven действительно излишний, и вы просто хотите запустить всю сборку за один шаг, используйте глобальный build.xml

1 голос
/ 15 февраля 2010

Альтернативой Maven, если вы просто хотите использовать Ant, является Ivy . Это просто менеджер зависимостей, немного похожий на Maven, но без всего остального, что делает Maven.

Я бы предложил использовать один из двух. Если у вас есть проект с такими зависимостями, вы значительно упростите его, если будете хранить их в центральном хранилище и использовать менеджер зависимостей для их включения!

...