java - 如何在一个java模块中生成2个jar : one is uber jar and another is non-uber jar?

标签 java maven maven-shade-plugin

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

最佳答案

Maven Shade 插件,如果运行 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。

关于java - 如何在一个java模块中生成2个jar : one is uber jar and another is non-uber jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52200902/

相关文章:

java - 使用PrintWriter和DataOutputStream在java中写入同一个文件

java - 我自己的 ArrayBasedList 类上的 remove() 方法删除了错误的索引

java - 阴影/重新打包的 jar 作为依赖项

Maven:改为在第三方依赖项中使用 Shade 版本

java - Tomcat 无法解析 web.xml,在提到的代码点没有错误

java - 为什么输出每次都不同而不是同步块(synchronized block)

java - 执行从 Maven 构建的 jar 时出现 "Java error occurred"消息

java maven exec-maven-plugin 没有在 mvn clean install 上执行

java - Maven可以在 war 中为不同模块指定不同的依赖关系吗?

java - Maven - 在 mac 上下载 win 依赖项