Maven: использовать сборку в качестве артефакта - appendAssemblyId == false? - PullRequest
2 голосов
/ 23 марта 2011

У меня есть многомодульный проект.

Последний модуль - "сборка", которая предназначена для объединения нескольких модулей .jar в один большой .jar, который я мог бы использовать для распространения. Этот модуль больше ничего не делает, поэтому я сделал это:

  <plugins>
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
           <appendAssemblyId>false</appendAssemblyId>
           ...
        </configuration>
     </plugin>
  </plugins>

Я хочу, чтобы это поведение могло просто запускать полученный JAR из IDE (NetBeans 7.0).

Maven делает именно то, что я хочу, но говорит это:

[assembly:single]
Reading assembly descriptor: src/assembly/assembly.xml
Building jar: /mnt/ssd1/_projekty/JBoss/bots/JawaBot/2.0/assemble/target/JawaBot-assemble-2.0.0-SNAPSHOT.jar
Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing.
Instead of attaching the assembly file: /mnt/ssd1/_projekty/JBoss/bots/JawaBot/2.0/assemble/target/JawaBot-assemble-2.0.0-SNAPSHOT.jar, it will become the file for main project artifact.
NOTE: If multiple descriptors or descriptor-formats are provided for this project, the value of this file will be non-deterministic!
Replacing pre-existing project main-artifact file: /mnt/ssd1/_projekty/JBoss/bots/JawaBot/2.0/assemble/target/JawaBot-assemble-2.0.0-SNAPSHOT.jar
with assembly file: /mnt/ssd1/_projekty/JBoss/bots/JawaBot/2.0/assemble/target/JawaBot-assemble-2.0.0-SNAPSHOT.jar

Похоже, это сообщение не рекомендуется для достижения моей цели. Есть ли что-нибудь лучше?

1 Ответ

3 голосов
/ 23 марта 2011

Плагин сборки создаст артефакт с «классификатором», состоящим из идентификатора сборки из дескриптора.Он не создаст основной артефакт AFAICT.

Возможно, вы будете более довольны maven-shade-plugin, а также настройте maven-jar-plugin для установки имени класса манифеста, чтобы java -jar работал.Плагин Shade может создать основной артефакт.

...