如何在一个 java 模块中生成 2 个 jar:一个是 uber jar,另一个是非 uber jar?
How to generate 2 jars in one java module: one is uber jar and another is non-uber jar?
我知道我可以通过创建 2 个模块来实现它,但只是想知道是否可以在一个模块中实现它?谢谢
Maven Shade 插件,如果您 运行 shade
目标,默认情况下会生成两个 JAR:
your-artifact.jar
— Uber-JAR,以及
original-your-artifact.jar
— 原始的非 Uber-JAR。
或者,您可以使用 outputFile
配置选项为 Uber-JAR 指定不同的名称(见下文)。
在这种情况下,您的 "normal" JAR 将具有 "usual" 名称。
<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。
我知道我可以通过创建 2 个模块来实现它,但只是想知道是否可以在一个模块中实现它?谢谢
Maven Shade 插件,如果您 运行 shade
目标,默认情况下会生成两个 JAR:
your-artifact.jar
— Uber-JAR,以及original-your-artifact.jar
— 原始的非 Uber-JAR。
或者,您可以使用 outputFile
配置选项为 Uber-JAR 指定不同的名称(见下文)。
在这种情况下,您的 "normal" JAR 将具有 "usual" 名称。
<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。