Maven2 Assembly plugin question
От: leska http://highprog.com
Дата: 18.12.07 09:21
Оценка:
Есть прект. Надо сделать две сборки. одну с сырцами, а вторую без.

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

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

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


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


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


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

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


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

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

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

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

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

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


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

Спасибо.
Кризис добрался и до IT? Узнай как стать фрилансером.
Re: Maven2 Assembly plugin question
От: Аноним  
Дата: 18.12.07 15:30
Оценка:
Имена артефактов следуют определенным правилам, поэтому так.

Чтобы запустить 2 раза исполнение одного плагина с разными конфигами, объедините 2 execution под одним плагином и дайте execution разные ID
Re[2]: Maven2 Assembly plugin question
От: leska http://highprog.com
Дата: 18.12.07 19:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Имена артефактов следуют определенным правилам, поэтому так.


А>Чтобы запустить 2 раза исполнение одного плагина с разными конфигами, объедините 2 execution под одним плагином и дайте execution разные ID


А как для конкретного execution задать descriptor, который будет использоваться?
Кризис добрался и до IT? Узнай как стать фрилансером.
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
Re[2]: Maven2 Assembly plugin question
От: leska http://highprog.com
Дата: 19.12.07 10:55
Оценка:
Здравствуйте, mi45, Вы писали:


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

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

Спасибо, должно помочь
Кризис добрался и до IT? Узнай как стать фрилансером.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.