Maven - лучший способ обратиться к каталогу по системному пути - PullRequest
0 голосов
/ 12 мая 2011

Я пытаюсь построить RPM из моего проекта Maven. У меня есть 5 различных модулей, и у каждого есть свой собственный pom.xml. В корне у меня есть один pom.xml, который собирает все модули (Обычная установка Maven). Когда я создаю RPM, я хочу включить каталог, который не является частью каталогов maven. Это над каталогом [из корневой папки, содержащей мои модули maven]. Каков наилучший способ включить это в мой RPM? или, вернее, как лучше всего обратиться к каталогу без жесткого пути? Я запутался в $ {baseDir} и на что он ссылается?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

${project.basedir} относится к корню проекта, т. Е. Где находится файл pom.xml, так что вы можете использовать его в <systemPath>${project.baseDir}/../../dirYouWant</systemPath>

В общем, лучшие практики Maven не одобряют довериеотносительные пути вокруг ваших проектов от того, чтобы быть там.Вместо этого я предлагаю развернуть эти файлы как собственный проект в вашем хранилище maven (в виде zip, jar и т. Д.), А затем получить их как часть вашей сборки rpm.В зависимости от того, какой плагин вы используете для создания RPM, вы можете автоматически распаковать эти файлы.

0 голосов
/ 12 мая 2011

Попробуйте это

<dependency>
...groupid,artifactid etc..
<scope>system</scope>
<systemPath>path/to/your/jar</systemPath>
</dependency>

Вы имели в виду, что хотите добавить еще один проект в свою сборку maven на уровень выше?

вы можете сделать это так:

в вашем родительском пом:

   <modules>
        <module>../projectdirectory</module>
      </modules>

в вашем проекте pom:

<parent>
        <groupId>...</groupId>
        <artifactId>...parent...</artifactId>
        <version>...</version>
        <relativePath>../parentProject/pom.xml</relativePath>
    </parent>
...