Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在多模块maven项目中分别运行多个模块_Java_Spring_Maven_Spring Boot - Fatal编程技术网

Java 如何在多模块maven项目中分别运行多个模块

Java 如何在多模块maven项目中分别运行多个模块,java,spring,maven,spring-boot,Java,Spring,Maven,Spring Boot,我创建了一个多模块maven项目,每个模块都是SpringBoot应用程序。我想运行父项目下的每个模块 例如: Parent p --模块A --src --pom.xml --模块B --src --pom.xml --xml 我现在做的是在命令提示符下从父pom执行mvn clean install,然后导航到每个模块的目标文件夹,并使用java-jar执行每个jar 我想先运行模块A,然后单次运行模块B。这可能吗?如何在maven中做到这一点。有两种方法可以帮助您实现目标: 剧本 编写一个

我创建了一个多模块maven项目,每个模块都是SpringBoot应用程序。我想运行父项目下的每个模块

例如:

Parent p
--模块A
--src
--pom.xml
--模块B
--src
--pom.xml
--xml

我现在做的是在命令提示符下从父pom执行mvn clean install,然后导航到每个模块的目标文件夹,并使用java-jar执行每个jar


我想先运行模块A,然后单次运行模块B。这可能吗?如何在maven中做到这一点。

有两种方法可以帮助您实现目标:

剧本 编写一个构建和启动每个模块的脚本。我以一个Windows批处理脚本为例

maven.bat

mvn clean package
start java -jar module-a/target/module-a-0.0.1.BUILD-SNAPSHOT.jar
start java -jar module-b/target/module-b-0.0.1.BUILD-SNAPSHOT.jar
使用Docker,更具体地说,使用单个命令启动所有模块:

docker-compose up
docker compose.yml

modulea:
 image: foobar/modulea
 ports:
  - "8080:8080"
 links:
  - moduleb
 environment:
  - SPRING_PROFILES_ACTIVE=local
moduleb:
 image: foobar/moduleb
 ports:
  - "8081:8080"
 links:
  - modulea
 environment:
  - SPRING_PROFILES_ACTIVE=local

有关如何使用Docker和Docker compose的更多详细信息,请访问文档的链接。

父级p
,您可以使用单个内联命令实现所需的功能(我将其拆分为两行,仅用于阅读目的):

上面给出的命令允许在后台运行两个Spring Boot应用程序模块,每个模块都在其专用端口上运行

命令的输出,即Spring引导启动日志,将被发送到
nohup.out
,放在
Parent p
目录中

nohup mvn spring-boot:run -pl module-A -Dserver.port=8090 &
nohup mvn spring-boot:run -pl module-B -Dserver.port=8091 &