我创建了一个多模块maven项目,每个模块都是spring boot应用程序。我想在父项目下运行每个模块。
例如:
Parent P
-- module A
-- src
-- pom.xml
-- module B
--src
--pom.xml
--pom.xml
我现在正在做的是在命令提示符下从父pom执行mvn clean install,然后导航到每个模块的目标文件夹并使用java-jar执行每个jar
我想首先运行模块A,然后一次运行模块B.这可能吗?如何在maven中完成。
答案 0 :(得分:1)
有两种方法可以实现您想要做的事情:
编写一个用于构建和启动每个模块的脚本。我已经包含了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使用一个命令启动所有模块:
docker-compose up
<强>搬运工-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&amp; amp;搬运工-撰写。
答案 1 :(得分:0)
从Parent P
开始,您可以使用单个内联命令实现所需(我将其分为两行,仅用于阅读目的):
nohup mvn spring-boot:run -pl module-A -Dserver.port=8090 &
nohup mvn spring-boot:run -pl module-B -Dserver.port=8091 &
上面提到的命令允许在后台运行两个Spring Boot应用程序模块,每个模块都在其专用端口上。
nohup命令的输出,即Spring Boot启动日志,将发送到nohup.out
,放在Parent P
目录中。