Re: Maven2 Assembly plugin question
От: mi45  
Дата: 19.12.07 09:12
Оценка:
Здравствуйте, leska, Вы писали:

L>Есть прект. Надо сделать две сборки. одну с сырцами, а вторую без.


L>Подключаю дескрипторы:


L>
L>       <plugin>
L>         <artifactId>maven-assembly-plugin</artifactId>

L>         <configuration>
L>           <descriptors>
L>             <descriptor>src/assemble/src.xml</descriptor> 
L>             <descriptor>src/assemble/bin.xml</descriptor> 
L>           </descriptors>
L>         </configuration>
L>         <executions>
L>           <execution>
L>             <phase>package</phase>
L>             <goals>
L>               <goal>attached</goal>
L>             </goals>
L>           </execution>
L>         </executions>
L>       </plugin>
L>


L>Дело в том, что при выходные файлы получают немного не такие навания, как хотелось бы:



L>
L>my-module-1.0-bin.zip
L>my-module-1.0-src.zip
L>


L>Хотелось бы так:


L>
L>my-module-bin-1.0.zip
L>my-module-src-1.0.zip
L>


L>Если переименовать потом с помощью maven-antrun-plugin, то потом не файлы не могут задеплоиться на сервер.


L>А два раза вызвать maven-assembly-plugin и задать finalName не получается. Плагин запускается только один раз. Непонятно почему. Вообще как запустить два раза плагин в разнвх местах билд процесса для одной и той же фазы?


L>
L>      <plugin>
L>         <artifactId>maven-assembly-plugin</artifactId>

L>         <configuration>
L>           <descriptors>
L>             <descriptor>src/assemble/bin.xml</descriptor> 
L>           </descriptors>
L>         </configuration>
L>         <executions>
L>           <execution>
L>             <phase>package</phase>
L>             <goals>
L>               <goal>attached</goal>
L>             </goals>
L>           </execution>
L>         </executions>
L>       </plugin>

L>       <plugin>
L>         <artifactId>maven-assembly-plugin</artifactId>

L>         <configuration>
L>           <descriptors>
L>             <descriptor>src/assemble/src.xml</descriptor>
L>           </descriptors>
L>         </configuration>
L>         <executions>
L>           <execution>
L>             <phase>package</phase>
L>             <goals>
L>               <goal>attached</goal>
L>             </goals>
L>           </execution>
L>         </executions>
L>       </plugin>

L>


L>Подскажите, как получить желаемое.


L>Спасибо.


Мне кажется можно использовать profiles для достижения цели. Так, можно определить два профайла типа:

                <profile>
            <id>bin</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/bin.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </plugin>
                </plugins>
                <finalName>my-app-bin-${project.version}</finalName>
            </build>
            <activation>
                <property>
                    <name>bin</name>
                </property>
            </activation>
        </profile>
                <profile>
            <id>src</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/src.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </plugin>
                </plugins>
                <finalName>my-app-src-${project.version}</finalName>
            </build>
            <activation>
                <property>
                    <name>src</name>
                </property>
            </activation>
        </profile>


соответствующие дескрипторы:
src.xml:
<assembly>
  <formats>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <includes>
        <include>pom.xml</include>
      </includes>
      <useDefaultExcludes>true</useDefaultExcludes>
    </fileSet>
    <fileSet>
      <directory>src/main/java</directory>
      <useDefaultExcludes>true</useDefaultExcludes>
    </fileSet>
  </fileSets>
</assembly>

bin.xml:
<assembly>
  <formats>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>target</directory>
      <outputDirectory></outputDirectory>
      <includes>
        <include>*.jar</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>

профайлы можно дергать через добавление в командную строку проперти bin и src: mvn -Dbin[src] assembly:assembly
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.