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