如何在一个java模块中生成2个jar:一个是超级jar,另一个是非超级jar?

问题描述 投票:0回答:1

我知道我可以通过创建2个模块来实现它,但只是想知道是否可以在一个模块中完成它?谢谢

java maven maven-shade-plugin
1个回答
2
投票

如果运行shade目标,Maven Shade插件默认会生成两个JAR:

  • your-artifact.jar - Uber-JAR,和
  • original-your-artifact.jar - 原始的非Uber-JAR。

或者,您可以使用outputFile配置选项为Uber-JAR指定其他名称(请参阅下文)。在这种情况下,您的“普通”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。
© www.soinside.com 2019 - 2024. All rights reserved.