我按照Building a fat jar using maven中的示例进行操作,现在我可以运行以下内容来构建/测试并安装我的jar。
mvn clean compile install
然而,install
现在需要更长的时间,因为我们现在正在制作一个胖罐。是否有可能有两个版本的安装,其中一个只是构建没有依赖关系的jar,另一个是这样做,另外构建胖jar,如:
mvn clean compile install
mvn clean compile install-fatjar
我知道install-fatjar
不是一个有效的阶段,只是想知道我想要完成的事情,即只有在提供选项时才建立胖jar的条件安装。
答案 0 :(得分:4)
为胖jar创建一个配置文件并配置maven程序集插件以在此配置文件中创建胖jar。
例如,使用此个人资料:
<profiles>
<profile>
<id>fatjar</id>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
然后你可以通过激活个人资料来构建它
mvn -P fatjar clean install
其中fatjar
是个人资料ID。
也可以激活多个配置文件
mvn -P fatjar,release install
答案 1 :(得分:1)
通常我们不使用fat-jar(或uber-jar)作为主要工件。
您可以使用Assembly或Shade插件来创建工件的变体(使用不同的分类器),这是一个超级jar。
强烈建议您仍保留“正常”工件。如果你只想偶尔使用uber-jar,可以在配置文件中使用assembly / shade插件创建“uber-jar”,并随时激活配置文件。然而,这仍然会产生一个“额外的”超级罐,而不是让你的主要神器成为超级罐。