Quarkus Uber-Jar打包需不解压依赖Jar的冲突问题咨询
解决方案:构建含完整依赖Jar的Quarkus可执行Uber-Jar
要解决Quarkus Uber-Jar解压依赖导致同名配置文件冲突的问题,你可以通过修改打包配置,让Uber-Jar保留完整的依赖Jar而不解压,同时保持单Jar可独立运行的特性。
1. 修改打包配置
你可以通过两种方式禁用依赖解压:
方式一:通过application.properties配置
在项目的src/main/resources/application.properties中添加:
quarkus.package.uber-jar=true quarkus.package.uber-jar.unpack=false
方式二:通过Maven插件配置
在pom.xml的quarkus-maven-plugin中添加打包配置:
<plugin> <groupId>io.quarkus</groupId> <artifactId>quarkus-maven-plugin</artifactId> <version>${quarkus.version}</version> <executions> <execution> <goals> <goal>build</goal> <goal>generate-code</goal> <goal>generate-code-tests</goal> </goals> </execution> </executions> <configuration> <!-- 启用Uber-Jar打包 --> <uberJar>true</uberJar> <!-- 禁用依赖解压 --> <unpack>false</unpack> </configuration> </plugin>
2. 执行打包命令
运行Maven打包命令生成Uber-Jar:
mvn clean package -DskipTests
3. 验证结果
生成的Uber-Jar内部会包含lib/main目录,所有依赖Jar都完整存储在此目录中,不会被解压。Quarkus的启动器会自动加载该目录下的依赖,确保每个依赖的配置文件都能被正确识别(不会出现覆盖问题),同时整个Jar可以独立运行,无需额外的lib目录。
内容的提问来源于stack exchange,提问作者MDuchemin
相关产品推荐
相关产品推荐

