2010-05-07 2 views
3

У меня есть плагин сборки maven для создания нескольких банку из одной банки, теперь проблема заключается в том, что я должен опубликовать эту банку в локальном репо, как и другие maven банки публиковать ими самостоятельно, когда они построены Maven чистой установки, как я буду в состоянии сделать этоКак опубликовать несколько файлов jar в maven на чистой установке

вот мой пОМ файл

<project> 
<parent> 
    <groupId>parent.common.bundles</groupId> 
    <version>1.0</version> 
    <artifactId>child-bundle</artifactId> 
</parent> 
<modelVersion>4.0.0</modelVersion> 
<groupId>common.dataobject</groupId> 
<artifactId>common-dataobject</artifactId> 
<packaging>jar</packaging> 
<name>common-dataobject</name> 
<version>1.0</version> 
<dependencies> 
     </dependencies> 
<build> 
    <plugins> 
    <plugin> 
    <groupId>org.jibx</groupId> 
    <artifactId>maven-jibx-plugin</artifactId> 
    <version>1.2.1</version> 
    <configuration> 
    <directory>src/main/resources/jibx_mapping</directory> 
    <includes> 
     <includes>binding.xml</includes> 
    </includes> 
    <verbose>false</verbose> 
    </configuration> 
    <executions> 
    <execution> 
     <goals> 
     <goal>bind</goal> 
     </goals> 
    </execution> 
    </executions> 
    </plugin> 
    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>make-business-assembly</id> 
     <phase>package</phase> 
     <goals> 
     <goal>single</goal> 
     </goals> 
     <configuration> 
     <appendAssemblyId>false</appendAssemblyId> 
     <finalName>flight-dto</finalName> 
     <descriptors> 
     <descriptor>src/main/assembly/car-assembly.xml</descriptor> 
     </descriptors> 
     <attach>true</attach> 
     </configuration> 
    </execution> 
    <execution> 
     <id>make-gui-assembly</id> 
     <phase>package</phase> 
     <goals> 
     <goal>single</goal> 
     </goals> 
     <configuration> 
     <appendAssemblyId>false</appendAssemblyId> 
     <finalName>app_gui</finalName> 
     <descriptors> 
     <descriptor>src/main/assembly/bike-assembly.xml</descriptor> 
     </descriptors> 
     <attach>true</attach> 
     </configuration> 
    </execution> 
    </executions> 
    </plugin> 
    </plugins> 
</build> 

    </project> 

Вот мой файл сборки

<assembly> 
    <id>app_business</id> 
    <formats> 
    <format>jar</format> 
    </formats> 
    <baseDirectory>target</baseDirectory> 
    <includeBaseDirectory>false</includeBaseDirectory> 

    <fileSets> 
    <fileSet> 
     <directory>${project.build.outputDirectory}</directory> 
     <outputDirectory></outputDirectory> 
     <includes> 
     <include>com/dataobjects/**</include> 
     </includes> 
    </fileSet>  
    </fileSets> 
</assembly> 
+0

Название не предназначено, чтобы содержать весь текст; они предназначены для краткого изложения текста. – Gumbo

ответ

2

Большое спасибо Pascal, Эта вещь действительно работает. Вот в конфигурации, что я добавил также сделать его работу ..

<plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.5</version> 
     <executions> 
      <execution> 
      <id>abc</id> 
      <phase>package</phase> 
      <goals> 
       <goal>attach-artifact</goal> 
      </goals> 
      <configuration> 
       <artifacts> 
       <artifact> 
        <file>src/main/assembly/flight-assembly.xml</file> 
        <type>xml</type> 
        <classifier>flight</classifier> 
       </artifact> 
       </artifacts> 
      </configuration> 
      </execution> 
     </executions> 
    </plugin> 
17

Build Helper Maven Plugin имеет build-helper:attach-artifact, позволяющий установить дополнительные артефакты, которые будут установлены и развернуты. Это обычно используется, как это (от Usage страницы):

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <!-- add configuration for antrun or another plugin here --> 
     </plugin> 
     ... 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.5</version> 
     <executions> 
      <execution> 
      <id>attach-artifacts</id> 
      <phase>package</phase> 
      <goals> 
       <goal>attach-artifact</goal> 
      </goals> 
      <configuration> 
       <artifacts> 
       <artifact> 
        <file>some file</file> 
        <type>extension of your file </type> 
        <classifier>optional</classifier> 
       </artifact> 
       ... 
       </artifacts> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 
+1

Вам не нужно просто сказать плагин сборки для крепления? – bmargulies

+2

@bmargulies Это действительно сделано автоматически. Но OP установил 'appendAssemblyId' в' false', поэтому я предполагаю, что первая сборка будет перезаписана второй во время 'install' или' deploy' и что только один артефакт «кажется» опубликован (OP didn ' t предоставлять их, но maven регистрирует сообщения, когда это происходит, и я предполагаю, что он не разместил бы вопрос, если все работает «как ожидалось»). –

+0

Это работало удивительно хорошо, чтобы решить проблему, которую я имел. Я добавлю, что с момента закрытия кода, документы и другое обслуживание этого плагина смещены здесь: http://www.mojohaus.org/build-helper-maven-plugin/ – David

Смежные вопросы