Мне нужно было решить аналогичную проблему для локального репозитория, размещенного в основном проекте многомодульного проекта. По сути, реальный путь был ${basedir}
/ lib. Наконец я остановился на этом в своем parent.pom
:
<repository>
<id>local-maven-repo</id>
<url>file:///${basedir}/${project.parent.relativePath}/lib</url>
</repository>
То, что basedir
всегда показывает текущему локальному модулю, нет способа получить путь к «главному» проекту (позор Maven). Некоторые из моих подмодулей глубже на один, некоторые глубже на два, но все они являются прямыми подмодулями родителя, который определяет URL репо.
Так что это не решает проблему в целом. Вы всегда можете объединить его с принятым ответом Клэя и определить какое-то другое свойство - работает нормально и должно быть переопределено только для случаев, когда значение из parent.pom
недостаточно хорошо. Или вы можете просто перенастроить плагин - что вы делаете только в POM-артефактах (родителях других подмодулей). Значение, извлеченное в свойство, вероятно, будет лучше, если оно понадобится вам в других местах, особенно когда ничего в конфигурации плагина не меняется.
Использование basedir
в значении было здесь важной частью, потому что URL file://${project.parent.relativePath}/lib
не хотел делать трюк (я удалил одну косую черту, чтобы сделать ее относительной). Использовать свойство, которое дает мне хороший абсолютный путь, а затем идти относительно него, было необходимо.
Когда путь не является URL / URI, вероятно, это не такая проблема, чтобы отбрасывать basedir
.