У меня есть веб-приложение, которое я назову core , к которому могут быть добавлены плагины (не maven-плагины), но оно должно работать и работать как отдельное веб-приложение. У нас есть плагин-lib, от которого зависит ядро, и от которого зависят также все плагины, разработанные для ядра.
Как это:
core -> core-plugin-lib
plugins -> core-plugin-lib
Моя структура каталогов проста:
root/
core/
pom.xml
core-plugin-lib/
pom.xml
pluginA/
pom.xml
pluginB/
pom.xml
Моя первая проблема: могу ли я собрать ядро или любой плагин, а также собрать зависимую библиотеку? Я читал о modules , но, как вы можете видеть, у lib есть 2 родителя. Что я действительно хотел бы, так это собрать ядро, а также собрать библиотеку ИЛИ если я собрал какой-либо плагин, я также хотел бы собрать библиотеку независимо. И помните также, что ядро не зависит от какого-либо плагина.
Вторая проблема: как собрать ядро, а также собрать плагины, хотя ядро от них не зависит, и плагины не должны быть модулем ядра. Они могли бы, это не является обязательным требованием, но я бы предпочел, чтобы я не поддерживал их как можно более независимыми.
На данный момент, когда я собираю плагин, он копирует себя в каталог / plugin внутри ядра, и у меня есть профиль распространения в ядре pom, чтобы скопировать существующие плагины из этого каталога внутрь войны веб-приложения. , Поэтому, когда я собираю ядро без профиля, оно не копирует свои плагины, но когда я запускаю профиль распространения, да. Это работает, но это утомительно, так как мне нужно собрать lib, собрать плагины и собрать ядро.
Я хотел бы знать, существует ли какая-либо структура pom, которая могла бы решить двойную зависимость моей первой проблемы, и есть ли способ справиться со второй проблемой и создать плагины через ядро, даже если они не зависят. И, если возможно, если бы я мог решить вторую проблему в профиле, а не в отдельном помпе. Этот профиль использует maven-assembly-plugin для создания tar.gz со всем, что в нем упаковано. Я также хотел бы сохранить это, если это возможно.