Проблема сборки с многомодульным проектом - PullRequest
0 голосов
/ 10 апреля 2010

У меня есть многомодульный веб-проект. Четыре модуля проекта упакованы как jar и добавлены в качестве зависимости к пятому модулю, который упакован как war. Когда пришло время развертывать приложение, я просто запускаю пакет на военном проекте, и моя война создается со всеми зависимостями.

Теперь возникла проблема.

В одном из моих модулей произошли серьезные изменения. Теперь, когда я создал войну для своих проектов, эти изменения не были отражены в выходном файле войны (в банке в папке lib войны все еще старый код).

Не могли бы вы указать, что мне не хватает в процессе выпуска? Почему старый код упакован вместе с войной?

Не могли бы вы указать хороший ресурс для реального процесса сборки файлов с использованием maven?

С уважением, Виджей

1 Ответ

2 голосов
/ 10 апреля 2010

Когда приходит время развернуть приложение, я просто запускаю пакет в военном проекте, и моя война создается со всеми зависимостями. (...) Один из моих модулей претерпел серьезные изменения. Теперь, когда я создал war для своих проектов, эти изменения не были отражены в выходном файле war (в банке lib в папке war все еще старый код).

Вам необходимо запустить «сборку реактора», то есть запустить maven на всех модулях, запустив его из объединяющего родителя. Допустим, у вас есть следующая структура:

parent
|-- module1
|   `-- pom.xml
|-- module2
|   `-- pom.xml
|-- module3
|   `-- pom.xml
|-- module4
|   `-- pom.xml
|-- webapp
|   `-- pom.xml
`-- pom.xml

И при условии, что вы определили <modules> в pom родителя:

<modules>
  <module>module1</module>
  <module>module2</module>
  <module>module3</module>
  <module>module4</module>
  <module>webapp</module>
</modules>

Просто запустите package из родительского каталога:

cd parent
mvn package

Maven прочитает все <modules> и построит их в правильном порядке на основе зависимостей.

Взгляните на Советы и хитрости Maven: расширенные параметры реактора для иллюстрации сборок реактора и более сложных параметров. Например, вы можете вызвать maven следующим образом, чтобы построить webapp модуль и его зависимости (но только его зависимости, а не все модули):

mvn -am -pl webapp
...