В Maven, могу ли я указать относительный путь выше моего текущего проекта?
Я изучаю maven на лету, выполняя работу над проектом с большим набором проектов для сборки.
В настоящее время строка в основной сборке использует абсолютный путь для указания каталога, который является частью репозитория subversion, но "выше" его каталога.
как в: "C:/work/project/eclipse", где "проект" - это зарегистрированный каталог, а pom.xml находится в "C:/work/project/src/subproject/pom.xml",
Я хотел бы сделать эту строку относительным адресом.
Я попробовал указать "../../Eclipse....", поместив это, похоже, не работает.
Это также может быть связано с тем, что эта же переменная используется подмассивом pom файла.
Любые советы (кроме перезаписи всего беспорядка, о котором я просто недостаточно знаю о maven, чтобы сделать еще)?
Ответы
Ответ 1
С Maven вещи относительно каталога, содержащего pom.xml
(который представлен свойством ${basedir}
и называется базовым каталогом). Однако есть некоторые ситуации, когда вам нужно указать относительный путь:
- если a
<parent>
pom не находится непосредственно над данным модулем с использованием элемента <relativePath>
(см. этот пример)
- Если модули не вложены (т.е. если вы используете плоский макет), используя относительный путь в различных элементах
<module>
(например, в в этом примере).
Имея все, что сказал, я не уверен, чтобы понять, какова ваша ситуация или что вы описываете.
Возможно, вам следует показать соответствующие части вашего POM, если это возможно.
Ответ 2
В идеале pom.xml
должен находиться в том же каталоге, что и ваш каталог src
. Например, предположим, что вы проверили свой проект из svn в папку C:/work/project
, а затем сохраните основной pom.xml
в C:/work/project
. src
также должен быть в C:/work/project
.
Ваши другие подпроекты должны быть в C:/work/subproject1
, C:/work/subproject2
и т.д., каждый из которых имеет свой собственный pom.xml
. Затем в главном pom.xml
вы можете ссылаться на другие проекты в
<modules>
<module>../subproject1<module>
<module>../subproject2<module>
</modules>