- В моем проекте у меня есть разные модули.
- В каждом модуле есть pom.xml, в котором упаковка представляет собой банку.
- И каждый pom относится к общему родителю.
В родительском модуле есть также pom.xml, который включает в себя все модули.Упаковочная банка недействительна. Проект агрегатора нужен пом в виде упаковки
Но когда я попытался сделать упаковку в pom.xml родительского модуля, он показывает ошибку, которая является «Упаковочная банка недействительна. Проект агрегатора нужен пом в качестве упаковки».
Я хочу сделать исполняемый банку приложения из maven так, каково решение этой проблемы или есть какое-либо другое решение.
ответ
Maven требует родителю быть packaging
pom
.
Вы можете сделать проект pom
так, как если бы это был проект jar
, включив в себя кучу плагинов и привязывая их к их следующей фазе жизненного цикла. Это не счастливая дорога. Наоборот, следующие :.
С точки зрения объектно-ориентированного подхода, что вам нужно? У вас есть один объект, состоящий из кучи других объектов, не так ли? Другими словами состав, в отличие от наследования.
Ваша окончательная поставка составлена из других (jar
) проектов, то есть другие проекты являются зависимыми от проекта окончательной доставки. Вы определяете остальные проекты как dependency
, чтобы кто-то из ваших конечных поставок знал, какие (переходные) зависимости получить. В качестве альтернативы окончательная поставка jar
может быть упакована как "uber-jar
" и таким образом содержать все ее зависимости. Все зависит от того, как будет использоваться окончательная поставка.
В то же время следующие два аспекта (может) все еще существует:
- родительского проект (который отличается от окончательного проекта поставки, на самом деле это может быть родителем окончательного проекта поставки также) определяет общие черты между его последующими детьми, как и следовало ожидать от наследования. Ребенок - это любой проект, который ссылается на родителя через конфигурацию
parent
в POM. - Проект, который определяет
modules
, которые должны быть легко построены за один раз. Модули - это проекты, которые передаются с использованиемmodules.module
. Обычно это (я думаю,> 99%) выполняется в родительском проекте, но не обязательно. Вы также можете добавить его в окончательный проект доставки (не затрагивая наследование, потому что это, таким образом, другой зверь), но это нетипично, и я бы туда не поехал.
Чтобы сделать вещи короткими: если проект родительского агрегатора не содержит исходный код (и это хорошая практика), просто добавьте это в родительский pom.XML:
<packaging>pom</packaging>
Если родительский проект содержит исходный код, я настоятельно рекомендую вам:
- перенести этот код в новый модуль (назовем его
commons
) - сделать
commons
ребенка модуль вашего родительского проекта - добавить модуль
commons
в качестве зависимости от всех других модулей, требующих его (возможно, все из них) - добавить
<packaging>pom</packaging>
в родительском pom.xml
- 1. Bind банка: тест-банку для упаковки фазы
- 2. Упаковочная марка из ниоткуда
- 3. Изменения в файле после программы упаковки в виде jar
- 4. нагрузки банка в проект с Maven
- 5. Импорт банка в проект Android студии
- 6. Упаковочная горизонтальная компоновка
- 7. Импорт банка в проекте
- 8. Проект AspectJ как банка для другого проекта
- 9. В Maven как создать модули, но не сам проект агрегатора?
- 10. Maven - не копировать проект банка за пределами/Lib, а EAR упаковка
- 11. Проект упаковки Django с несколькими приложениями
- 12. maven создать проект eclipse для пользовательской упаковки
- 13. Родительский проект должен иметь тип упаковки POM
- 14. Как добавить файл банка в проект в андроиде студии
- 15. Java банка работает
- 16. silverlight .x упаковочная ошибка (ссылки уважаемых сборок)
- 17. Понимание упаковки .ear
- 18. Зачем нужен проект надстройки VSTO?
- 19. Конкретная весна-жильный банка, которые будут включены в проект
- 20. Intellij - Как узнать, почему определенная банка включена в мой проект?
- 21. Упаковочная решетка в нижний треугольник тензора
- 22. мульти артефакт идентификатор в одном ПОМ
- 23. Maven: вызов вне родительского ПОМ
- 24. Как получить Maven номер версии внутри ПОМ
- 25. Hibernate ПОМ исключение
- 26. Вывод упаковки упаковки Erlang
- 27. Maven релиз не работает с группировкой ПОМ
- 28. Как пропустить загрузку конкретного пом в Maven
- 29. Активировать профиль в зависимом от ПОМ?
- 30. Метод упаковки В JLayeredPane