You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Quarkus Maven插件时,如何保留无.original后缀的原始Jar文件?

解决Quarkus Maven插件保留原始Jar文件的问题

以下两种方法可以避免原始Jar被重命名为.original后缀,同时保留Quarkus生成的Uber-Jar:

方法1:添加Quarkus保留原始Jar的配置

在Quarkus插件的配置中添加quarkus.package.keep-original=true属性,明确要求插件保留原始Jar文件的原始名称:

<plugin>
  <groupId>io.quarkus.platform</groupId>
  <artifactId>quarkus-maven-plugin</artifactId>
  <extensions>true</extensions>
  <configuration>
    <properties>
      <quarkus.package.type>uber-jar</quarkus.package.type>
      <quarkus.package.main-class>${mainClass}</quarkus.package.main-class>
      <quarkus.package.output-directory>${project.build.directory}</quarkus.package.output-directory>
      <quarkus.package.runner-suffix>-quarkus</quarkus.package.runner-suffix>
      <!-- 保留原始Jar文件,不添加.original后缀 -->
      <quarkus.package.keep-original>true</quarkus.package.keep-original>
    </properties>
  </configuration>
  <executions>
    <execution>
      <id>uber-jar</id>
      <phase>package</phase>
      <goals>
        <goal>build</goal>
      </goals>
    </execution>
  </executions>
</plugin>

执行mvn package后,target目录下会同时存在:

  • some-x.y.z-SNAPSHOT.jar(原始Jar文件,无.original后缀)
  • some-x.y.z-SNAPSHOT-quarkus.jar(Quarkus生成的Uber-Jar)

方法2:调整插件执行阶段

将Quarkus插件的执行阶段从package改为verify,让Maven默认的jar插件先在package阶段生成原始Jar,Quarkus插件在后续的verify阶段生成Uber-Jar,不会修改原始Jar的名称:

<plugin>
  <groupId>io.quarkus.platform</groupId>
  <artifactId>quarkus-maven-plugin</artifactId>
  <extensions>true</extensions>
  <configuration>
    <properties>
      <quarkus.package.type>uber-jar</quarkus.package.type>
      <quarkus.package.main-class>${mainClass}</quarkus.package.main-class>
      <quarkus.package.output-directory>${project.build.directory}</quarkus.package.output-directory>
      <quarkus.package.runner-suffix>-quarkus</quarkus.package.runner-suffix>
    </properties>
  </configuration>
  <executions>
    <execution>
      <id>uber-jar</id>
      <phase>verify</phase> <!-- 修改执行阶段 -->
      <goals>
        <goal>build</goal>
      </goals>
    </execution>
  </executions>
</plugin>

这种方式同样会保留原始Jar的默认名称,同时生成指定后缀的Uber-Jar。

内容的提问来源于stack exchange,提问作者Jin Kwon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:32:47