В настоящее время я разрабатываю несколько веб-приложений с использованием Spring. Я использую Maven для создания и Git для контроля версий. На данный момент я пытаюсь найти способ разделить разработку некоторых вещей, используемых всеми веб-приложениями, например. У меня есть вспомогательные классы, которые одинаковы для всех проектов. Проблема в том, что я не хочу использовать только классы, но также файлы ресурсов и какой-то родительский POM, хотя он все еще не зависит от репозитория и может извлечь выгоду из Git.Как включить родительский проект Spring (с использованием подмодуля Git)?
Хотя я не в восторге от изменения системы сборки, я не являюсь настоящим поклонником Maven. В особенности концепция наследования и агрегирования - вот что ограничивает меня сейчас. Может быть, Айви - это вариант?
Я хотел бы дать вам краткий обзор моей установки:
Там какая-то родительского проекта, включая некоторые классы, файлы конфигурации Spring и другие ресурсы, такие как шаблоны, изображения и таблицы стилей. Назовем это base
. Это не полная версия Spring Webapp и не будет развернута. Есть еще несколько проектов, которые наследуют от base
и должны быть упакованы в WAR. Назовем их webapp1
и webapp2
.
base
, webapp1
и webapp2
имеют свои собственные Git репозиториев:
\
|
|- base.git (base's repository)
|
|- webapp1.git (webapp1's repository)
| \
| base (base used as a Git submodule)
|
|- webapp2.git (webapp2's repository)
\
base (base used as a Git submodule)
Я хочу, чтобы иметь возможность изменить base
сек код изнутри на WebApps с помощью подмодуль Git, а также быть в состоянии построить полностью функциональный WAR каждого веб-приложения, используя mvn package
внутри каталога webapp.
Maven's parent
или module
не позволяют использовать динамический подход. Я не нашел способ использовать module
, как это вообще, и с помощью parent
для моих нужд сложный и статический: для каждого изменения base
потребуется новая версия, которая должна быть перенесена в репозиторий, чтобы Webapp`s мог наследовать от нее ,
Возможно, я не совсем понял наследство Мейвена, но сейчас я довольно потерян.
Неужели кто-то достиг чего-то подобного с успехом? Какую систему сборки вы использовали и как?
- это базовый простой JAR, который необходимо упаковать в файлы WAR? –
Нет, это не так. Как упоминалось выше, я также хочу включить какую-то «конфигурацию мета-сборки». Что может быть достигнуто с родительским ПОМ. Есть несколько задач, которые должны выполняться для всех проектов, и я не хочу их копировать и вставлять. – Koraktor