2010-07-08 7 views
3

У нас есть агрегация .pom создать включать в себя несколько, отдельные модули, похожие на Maven documentation:Maven pom.xml - Проект Aggregation

<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, поэтому я уверен, что есть простой способ сделать это. Мне не хватает.

ответ

2

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

Maven Assembly Plugin может это сделать, он очень мощный и гибкий. Но сила и гибкость также означают, что это не самый тривиальный плагин для использования. В вашем случае идея заключалась бы в генерации дистрибутива dir с moduleSets, и вам нужно будет создать для него пользовательский assembly descriptor.

Предлагаю начать с главы 8.2. Assembly Basics книги Maven и обратить особое внимание на главу 8.5.5. moduleSets Sections.

0

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

0

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

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

+0

«Просто» работает 'сборка: сборка 'будет недостаточно. –

1

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

 <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> 

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