Подтвердить что ты не робот

В Maven, могу ли я указать относительный путь выше моего текущего проекта?

Я изучаю maven на лету, выполняя работу над проектом с большим набором проектов для сборки.

В настоящее время строка в основной сборке использует абсолютный путь для указания каталога, который является частью репозитория subversion, но "выше" его каталога.

как в: "C:/work/project/eclipse", где "проект" - это зарегистрированный каталог, а pom.xml находится в "C:/work/project/src/subproject/pom.xml",

Я хотел бы сделать эту строку относительным адресом.

Я попробовал указать "../../Eclipse....", поместив это, похоже, не работает.

Это также может быть связано с тем, что эта же переменная используется подмассивом pom файла.

Любые советы (кроме перезаписи всего беспорядка, о котором я просто недостаточно знаю о maven, чтобы сделать еще)?

4b9b3361

Ответ 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>