Плагин Maven Assembly, загрузка нужного zip-файла - PullRequest
3 голосов
/ 05 января 2012

У меня есть что-то вроде следующего, где мне нужно сгенерировать 2 zip-файла и, наконец, заархивировать их в другой zip-файл:

        <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>assembly1</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <appendAssemblyId>false</appendAssemblyId>
                                <finalName>assembly1</finalName>
                                <descriptors>
                                  <descriptor>assembly1.xml</descriptor>
                                </descriptors>
                                <attach>true</attach>
                            </configuration>
                        </execution>
                        <execution>
                            <id>assembly2</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <appendAssemblyId>false</appendAssemblyId>
                                <finalName>assembly2</finalName>
                                <descriptors>
                                  <descriptor>assembly2.xml</descriptor>
                                </descriptors>
                                <attach>true</attach>
                            </configuration>
                        </execution>
                        <execution>
                            <id>assembly3</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <appendAssemblyId>false</appendAssemblyId>
                                <finalName>assembly3</finalName>
                                <descriptors>
                                  <descriptor>assembly3.xml</descriptor>
                                </descriptors>
                                <attach>true</attach>
                            </configuration>
                        </execution>
                    </executions>
    </plugin>

Я пытаюсь создать 2 zip-файла под названием assembly1.zip и assembly2.zip, наконец-то заархивируйте эти 2 zip-файла в assembly3.zip

В целевой папке я вижу созданные zip-файлы, а в assembly3.zip я вижу также файлы assembly1 и 2 zip.

Когда Maven загружает данные в локальный репозиторий, он случайным образом выбирает один из zip-файлов, и я хочу загрузить файл assembly3.zip.

Это то, что я вижу вЖурнал Maven:

[INFO] --- maven-assembly-plugin:2.2-beta-5:single (assembly1) @ MyTestWar ---
[INFO] Reading assembly descriptor: assembly1.xml
[INFO] Building zip: C:\MyTest\target\assembly1.zip

[INFO] --- maven-assembly-plugin:2.2-beta-5:single (assembly2) @ MyTestWar ---
[INFO] Reading assembly descriptor: assembly2.xml
[INFO] Building zip: C:\MyTest\target\assembly2.zip
**[WARNING] Artifact com.test:MyTestWar:zip:1.0.0.11-SNAPSHOT already attached to project, ignoring duplicate**

[INFO] --- maven-assembly-plugin:2.2-beta-5:single (assembly3) @ MyTestWar ---
[INFO] Reading assembly descriptor: assembly3.xml
[INFO] Building zip: C:\MyTest\target\assembly3.zip
**[WARNING] Artifact com.test:MyTestWar:zip:1.0.0.11-SNAPSHOT already attached to project, ignoring duplicate**



**[INFO] Installing C:\MyTest\target\assembly1.zip to C:\Users\myUserName\.m2\repository\
com\test\MyTestWar\1.0.0.11-SNAPSHOT\MyTestWar-1.0.0.11-SNAPSHOT.zip**

Это мой плагин установки Maven, в который я пытаюсь загрузить Assembly3.zip

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <id>zip-upload</id>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                        <configuration>
                            <packaging>zip</packaging>
                            <artifactId>Assembly3</artifactId>
                            <groupId>${project.groupId}</groupId>
                            <version>${project.version}</version>
                            <file>${project.build.directory}/assembly3.zip</file>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Хотя упоминается, что для некоторых он загружает Assembly3.zipПричина, по которой Maven забирает Assembly1.zip.

Также меня интересуют эти предупреждения.

Любая помощь в избавлении от предупреждений, а также в загрузке Assembly3.zip высоко ценится.

Спасибо

1 Ответ

2 голосов
/ 05 января 2012

Использование

<attach>true</attach>

только для сборки, которую вы хотите загрузить. Для двух других казней опустите эту опцию.

Что касается того, почему он выбирает случайную сборку вместо загрузки всех трех, я предполагаю, что идентификатор сборки в ваших дескрипторах сборки одинаков. Сообщение об ошибке

[ПРЕДУПРЕЖДЕНИЕ] Артефакт com.test: MyTestWar: zip: 1.0.0.11-SNAPSHOT уже присоединен к проекту, игнорируя дубликат

намекает на это. Даже если вы дали zip разные значения finalName , они все равно наследуют классификатор от идентификатора в дескрипторе сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...