2010-04-10 6 views
0

У меня есть веб-проект с несколькими модулями. Четыре модуля проекта упакованы в виде банки и добавляются как зависимость от пятого модуля, который упакован как война. Когда пришло время развернуть приложение, я просто запускаю пакет в военном проекте, и моя война создается со всеми зависимостями.Build Issue with multi module project

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

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

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

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

С уважением, Vijay

ответ

2

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

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

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

И если вы определены <modules> в ПОМ родителя:

<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 Tips and Tricks: Advanced Reactor Options на иллюстрации реакторных сборок и более продвинутых параметров. Например, вы можете ссылаться на Maven, как это построить webapp модуль и его зависимости (но только его зависимости, не все модули):

mvn -am -pl webapp 
+0

спасибо Pascal. Я пробовал это и считаю, что он работает. Спасибо, что решает мою проблему. –

+0

Не нужно ли ему запускать mvn install вместо пакета mvn? В противном случае, когда веб-модуль подходит для решения своих зависимостей, он получает потенциально устаревшие сборки модулей 1-4 из локального хранилища вместо недавно построенных версий; см. http://stackoverflow.com/questions/4150180/how-to-make-one-module-depends-on-another-module-artifact-in-maven-multi-modules –

Смежные вопросы