Maven pom.xml - Агрегирование проектов - PullRequest
4 голосов
/ 08 июля 2010

У нас есть агрегат .pom, настроенный на включение нескольких отдельных модулей, аналогично документации Maven :

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1</version>
  <packaging>pom</packaging>

  <modules>
    <module>my-module</module>
    <module>my-module-2</module>
  </modules>
</project>

Есть ли способ получить артефакты из сборок?(Файлы .JAR) из этих двух модулей в общий каталог 'dist' после сборки?Я не хотел настраивать выходной каталог для отдельных модулей из «my-module / target», поскольку они также могут быть собраны отдельно.

Я новичок в Maven, так что я уверенесть простой способ сделать это, я скучаю.

Ответы [ 4 ]

2 голосов
/ 08 июля 2010

Есть ли способ получить артефакты из сборок (файлы .JAR) из этих двух модулей в общий каталог dist после сборки?

MavenСборочный плагин может это сделать, он очень мощный и гибкий.Но мощь и гибкость также означают, что это не самый простой плагин для использования.В вашем случае идея состоит в том, чтобы сгенерировать dir дистрибутив из moduleSets, и для этого вам нужно будет создать собственный дескриптор сборки .1014 * Предлагаю начать с главы 8.2.Основы сборки книги Maven и уделить особое внимание главе 8.5.5.Разделы модуля .

1 голос
/ 08 июля 2010

Прочитав больше по ссылкам из других ответов, вот что я сейчас попробую:

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>

            <executions>
                <execution>
                    <id>copy-jars</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>../src/my-module/target</directory>
                                <includes>
                                    <include>**/my-module*.jar</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Не совсем красиво, но пока исследую плагин Assembly на предмет возможногоболее долгосрочное решение, это будет делать.

0 голосов
/ 08 июля 2010

Как сказал @Pangea, сборочный плагин сделает это. Просто запустите assembly:assembly цель с соответствующим установленным параметром outputDirectory.

больше информации на http://maven.apache.org/plugins/maven-assembly-plugin/assembly-mojo.html

0 голосов
/ 08 июля 2010

Я предполагаю, что плагин для сборки maven может сделать это

...