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

多模块Maven项目中同时运行多个Quarkus模块Dev Mode的方法

解决多模块Maven项目中同时运行多个Quarkus模块Dev Mode的问题

核心原因

quarkus:dev是阻塞式的Maven目标,在根目录执行该命令时,Maven会按模块顺序串行执行——启动第一个Quarkus模块的Dev Mode后就会停在此进程,直到该进程终止才会继续处理后续模块。

可行解决方案

1. 多终端分别启动(最直观可靠)

  • 打开两个终端窗口:
    • 第一个终端进入quarkus-module1目录,执行:
      mvn quarkus:dev
      
    • 第二个终端进入quarkus-module2目录,执行:
      mvn quarkus:dev
      
  • 关键注意事项:两个模块默认HTTP端口都是8080,会导致端口冲突,需修改各自的配置文件:
    • 在quarkus-module1/src/main/resources/application.properties中添加:
      quarkus.http.port=8080
      
    • 在quarkus-module2/src/main/resources/application.properties中添加:
      quarkus.http.port=8081
      
    也可以设置quarkus.http.port=0让系统自动分配随机端口,适合不想固定端口的场景。

2. 单终端后台启动(Linux/macOS适用)

如果不想开多个终端,可利用shell的后台运行特性:

  • 先在根目录编译公共依赖模块(避免重复构建):
    mvn clean install -pl lib1 -am
    
  • 后台启动第一个模块的Dev Mode:
    mvn -pl quarkus-module1 quarkus:dev &
    
  • 再启动第二个模块的Dev Mode:
    mvn -pl quarkus-module2 quarkus:dev
    
  • 终止后台进程时,用jobs命令查看进程ID,再用kill %<job-id>结束。

3. Windows下单终端多窗口启动

Windows系统可以用start命令新开窗口启动:

  • 先编译公共依赖:
    mvn clean install -pl lib1 -am
    
  • 新开窗口启动第一个模块:
    start mvn -pl quarkus-module1 quarkus:dev
    
  • 再启动第二个模块:
    start mvn -pl quarkus-module2 quarkus:dev
    

额外提示

  • 若公共模块lib1有代码修改,只需在根目录执行mvn install -pl lib1,两个Quarkus模块的Dev Mode会自动检测到依赖更新并热加载(无需重启)。
  • 生产环境的Docker镜像构建不受影响,依然可以针对单个模块执行mvn clean package -Dquarkus.container-image.build=true来分别构建镜像。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:25:17