Нахождение корневого каталога проекта многомодульного реактора 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, но я не считаю это решением.

Так есть ли простой способ найти корень многомодульного проекта?

Ответы на вопрос(10)

Ваш ответ на вопрос