Нахождение корневого каталога проекта многомодульного реактора Maven
Я хочу использовать плагин maven-dependency-plugin для копирования EAR-файлов из всех подмодулей моего многомодульного проекта в каталог, который находится относительно корневого каталога всего проекта.
То есть мой макет выглядит примерно так, имена изменились:
to-deploy/
my-project/
ear-module-a/
ear-module-b/
more-modules-1/
ear-module-c/
ear-module-d/
more-modules-2/
ear-module-e/
ear-module-f/
...
И я хочу, чтобы все EAR-файлы были скопированы из целевых каталогов их соответствующих модулей вmy-project/../to-deploy
так что я в конечном итоге
to-deploy/
ear-module-a.ear
ear-module-b.ear
ear-module-c.ear
ear-module-d.ear
ear-module-e.ear
ear-module-f.ear
my-project/
...
Я мог бы сделать это с относительным путем в каждом ушном модуле, например так:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>install</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<type>ear</type>
<outputDirectory>../../to-deploy</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Но я бы не хотел указывать относительный путь в<outputDirectory>
элемент. Я бы предпочел что-то вроде${reactor.root.directory}/../to-deploy
, но я не могу найти ничего подобного.
Кроме того, я бы предпочел, если бы был какой-то способ наследовать эту конфигурацию плагина maven-dependency-plugin, поэтому мне не нужно указывать ее для каждого EAR-модуля.
Я также попытался унаследовать пользовательское свойство от корневого pom:
<properties>
<myproject.root>${basedir}</myproject.root>
</properties>
Но когда я пытался использовать${myproject.root}
в ушных модулях POM,${basedir}
разрешил бы основателю ear-модуля.
Кроме того, я нашелhttp://labs.consol.de/lang/de/blog/maven/project-root-path-in-a-maven-multi-module-project/ где предлагается, чтобы каждый разработчик и, предположительно, сервер непрерывной интеграции настраивали корневой каталог в файле profiles.xml, но я не считаю это решением.
Так есть ли простой способ найти корень многомодульного проекта?