2

我有一个多模块项目。

最后一个模块是“assemble”,它旨在将几个模块的 .jar 放在一个大 .jar 中,我可以将其用于分发。这个模块什么都不做,所以我这样做了:

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

我希望这种行为能够简单地从 IDE (NetBeans 7.0) 运行生成的 jar。

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

此消息似乎不是实现我的目标的推荐方式。有没有更好的?

4

1 回答 1

3

程序集插件将创建一个带有“分类器”的工件,该“分类器”由描述符中的程序集 ID 组成。它不会创建主要工件 AFAICT。

您可能对 maven-shade-plugin 更满意,另外配置 maven-jar-plugin 以设置清单类名称以便 java -jar 工作。阴影插件可以产生一个主要的工件。

于 2011-03-23T01:09:26.853 回答