Quarkus 3.6.3+Java21构建后quarkus-run.jar仅含清单文件求助
解决方案
1. 先明确Quarkus 3.x的默认构建行为
Quarkus 3.x 默认输出分层Jar结构:quarkus-run.jar 只是个启动入口(仅含清单文件),实际业务代码和依赖分别存在 target/quarkus-app/app/ 和 target/quarkus-app/lib/ 目录里。你要的合并式可执行Jar,需要手动指定构建类型。
2. 两种生成单可执行Jar的方法
方式一:临时用命令行参数构建
执行构建时加上 -Dquarkus.package.type=uber-jar 参数就行:
mvn install -Dquarkus.package.type=uber-jar
构建完成后,target/ 目录下会生成 [你的项目名]-runner.jar,这就是合并后的完整可执行Jar,自带正确的清单文件,直接用 java -jar 就能启动。
方式二:把配置写到pom.xml里(永久生效)
找到项目 pom.xml 里的 quarkus-maven-plugin 块,添加 packageType 配置,之后再执行 mvn install 就默认生成单Jar:
<build> <plugins> <plugin> <groupId>io.quarkus</groupId> <artifactId>quarkus-maven-plugin</artifactId> <version>${quarkus.version}</version> <extensions>true</extensions> <executions> <execution> <goals> <goal>build</goal> <goal>generate-code</goal> <goal>generate-code-tests</goal> </goals> </execution> </executions> <configuration> <packageType>uber-jar</packageType> </configuration> </plugin> </plugins> </build>
3. 新建项目时直接指定类型
如果是新建项目不想再改配置,创建时就加参数:
quarkus create app com.example:your-app --package-type=uber-jar
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

