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

如何使用mvn wildfly:run命令同时部署两个独立Maven项目

问题原因

你之前的命令无法同时部署两个项目有两个核心原因:

  1. 重复使用-pl参数的写法错误,Maven只会识别最后一个-pl指定的模块,所以只会处理单个项目
  2. 即使你改成正确的多模块指定写法-pl project-rest-api,web-frontend,wildfly:run目标的默认行为是在当前模块执行时启动全新Wildfly实例并阻塞进程部署当前模块,前一个模块执行时就会占住进程,后一个模块根本不会运行,自然只能部署一个项目

解决方案

以下两种方案都不需要调整两个子模块的依赖关系:

方案1:临时部署无需改POM(两步执行)

思路是先启动空的Wildfly后台实例,再分别部署两个项目到运行中的实例:

  1. 先在父项目根目录执行命令启动后台Wildfly实例:
    mvn wildfly:start -f pom.xml
  2. 再执行命令同时构建并部署两个模块到已启动的Wildfly:
    mvn clean wildfly:deploy -pl project-rest-api,web-frontend
  3. 需要关闭Wildfly时执行:
    mvn wildfly:shutdown

方案2:单次命令执行(修改父POM配置,适合长期使用)

在父POM中统一配置Wildfly插件的部署项,之后单次命令即可完成启动+双部署:

  1. 在父POM的build/plugins节点下添加如下插件配置,把配置中的groupId、版本号替换为你项目的实际值:
<plugin>
    <groupId>org.wildfly.plugins</groupId>
    <artifactId>wildfly-maven-plugin</artifactId>
    <version>2.0.1.Final</version>
    <configuration>
        <deployments>
            <deployment>
                <groupId>替换为你的项目groupId</groupId>
                <artifactId>project-rest-api</artifactId>
                <version>替换为你的项目版本号</version>
                <type>war</type>
            </deployment>
            <deployment>
                <groupId>替换为你的项目groupId</groupId>
                <artifactId>web-frontend</artifactId>
                <version>替换为你的项目版本号</version>
                <type>war</type>
            </deployment>
        </deployments>
    </configuration>
    <executions>
        <execution>
            <phase>install</phase>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
  1. 在两个子模块的Wildfly插件配置中添加<skip>true</skip>,避免子模块重复执行插件逻辑。
  2. 之后直接在父项目根目录执行以下命令即可完成全构建、启动Wildfly、双项目部署:
    mvn clean install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:24:00