java - 如何在一个 java 模块中生成 2 个 jar:一个是 uber jar,另一个是非 uber jar?
问题描述
我知道我可以通过创建 2 个模块来实现它,但只想知道是否可以在一个模块中做到这一点?谢谢
解决方案
Maven Shade Plugin,如果你运行这个shade
目标,默认会产生两个 JAR:
your-artifact.jar
— Uber-JAR,以及original-your-artifact.jar
— 原始的非 Uber-JAR。
或者,您可以使用配置选项为 Uber-JAR 指定不同的名称outputFile
(见下文)。在这种情况下,您的“普通”JAR 将具有“通常”的名称。
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<outputFile>${project.build.directory}/uberjar-name.jar</outputFile>
</configuration>
</plugin>
使用此配置,结果将是:
your-artifact.jar
— 原始的非 Uber-JAR,以及uberjar-name.jar
— Uber-JAR。
推荐阅读
- machine-learning - َk-最近邻算法的接收器操作曲线(ROC)是否正确?
- mysql - 如何在 MySql 中显示多个表列表
- ios - 处理用户可以在 iOS 设置应用中打开/关闭通知的情况?
- python - list_object 不适用于 AWS Lambda 的跨账户
- object - 如何释放 Pascal 函数的 TStringList?
- python - 来自 sqlalchemy 的存储过程调用未提交
- arrays - 如何在 AWS IAM 策略上使用 jq?
- node.js - 为什么 vue js 中的 slick 会给出意外的视图?
- c++ - 我们可以在 C/CPP 中执行评论吗?
- python - 在 python 中从函数返回值时遇到问题