заставить подмодули быть подпапками родительского pom
Независимо от других возникающих проблем, на самом деле это рекомендуемый подход в целом, чтобы иметь проект с несколькими модулями/агрегацией (родительский) и подмодули в качестве подпапок, чтобы иметь одну центральную папку/точку входа (родительскую), предоставляющую общие конфигурация и управление (его pom.xml
файл) и модули (подпапки).
но maven решает отправить URL-адрес, указанный в подмодулях, которые, в свою очередь, оценивают свойство.
Действительно, project.basedir
оценивается как папка, содержащая pom.xml
, по сравнению с тем, что мы сейчас создаем (или подпостройкой, в случае модуля), поскольку проект сборки является модулем в данный момент времени.
Из официальной документации относительно project.basedir
Каталог, в котором находится текущий проект.
Если вы хотите всегда указывать на папку, из которой вы запустили сборку (в данном случае это агрегатор/родительский проект), вы можете вместо этого использовать session.executionRootDirectory
.
Однако будьте осторожны, особенно если вы хотите построить модуль непосредственно из его каталога, вы можете столкнуться с проблемами (проблемы с путями): вы всегда должны запускать его из родителя, используя параметры реактора, такие как -pl
(проекты для сборки).
Это также повод для дальнейших размышлений: от такого подхода может пострадать обслуживание и читабельность проекта. Тогда лучшим решением будет корпоративный репозиторий Maven.
Дальнейшее чтение на SO:
Обновить
Вопрос, касающийся X, заключается в том, почему maven наследует до оценки и как этого избежать?
Что касается вашего вопроса X, вот объяснение, которое я смог найти:
Ответ зависит от ядра сборки Maven, Maven Model Builder. а>:
Эффективный построитель моделей с активацией профиля, наследованием, интерполяцией, ...
В частности, он выполняет следующие шаги в следующем порядке:
- phase 1
- profile activation
- проверка необработанной модели
- нормализация модели
- профильная инъекция
- родительское разрешение до супер-пом
- сборка наследования
- интерполяция модели
- нормализация URL
Смелый мой. То есть он делает это, потому что он создан для этого своей моделью.
person
A_Di-Matteo
schedule
06.06.2016
$HOME/.m2/repository
, и хорошей идеей будет использовать менеджер репозитория... - person khmarbaise   schedule 06.06.2016.m2
. Цель состоит в том, чтобы хранить сторонние JAR-файлы, которые вам нужны, но не существуют ни в одном общедоступном репозитории. Он заменяет (не рекомендуется) использование системной области. - person ManuelSchneid3r   schedule 06.06.2016