代码之家  ›  专栏  ›  技术社区  ›  zjffdu

如何在一个java模块中生成两个jar:一个是uber jar,另一个是non-uber jar?

  •  0
  • zjffdu  · 技术社区  · 6 年前

    我知道我可以通过创建两个模块来实现它,但我只想知道有没有可能在一个模块中实现它?谢谢

    1 回复  |  直到 6 年前
        1
  •  2
  •   Alex Shesterov    6 年前

    Maven Shade插件,如果你运行 shade 默认情况下,将生成两个罐子:

    • your-artifact.jar
    • original-your-artifact.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>
    

    使用此配置,结果将是:

    • 你的-工件.jar
    • uberjar-name.jar