如何在多模块maven项目中单独运行多个模块

时间:2016-08-08 15:26:20

标签: java spring maven spring-boot

我创建了一个多模块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中完成。

2 个答案:

答案 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

http://pecl.php.net/package/PDO_MYSQL

使用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目录中。