java - 如何同时启动两个springboot项目
问题描述
我的项目包括一个视图服务和一个界面服务。项目目录如下所示:
Myproject/
springboot1/
springboot2/
springboot1和springboot2都可以单独运行。我现在启动的方式是打开两个终端,执行如下命令:
弹簧靴1
cd Myproject/springboot1/
mvn spring-boot:run
弹簧靴2
cd Myproject/springboot2/
mvn spring-boot:run
有没有办法同时启动两个项目? 比如在Myproject目录下添加一个全局pom.xml文件,在Myproject目录下直接执行mvn spring-boot:run。
解决方案
是的,正如您提到的,需要类似全局 pom xml 的方式,而不是通过将两个项目作为模块组合到您的打包应用程序(Myproject)来实现。让我给你一些想法:
使用全局 pom 文件创建一个新的 springBoot 应用程序,并将所有常见的(1 和 2 项目)jar 或依赖项移动到这个全局 pom 文件中。此外,作为主应用程序的每个应用程序都将其删除,因为它不再需要作为单独的实体,但还要确保您在各自的主文件中是否有任何自定义代码,而不是将该代码移动到打包项目的主文件中。
将项目 1 和 2 构建为 jar 包,并将它们作为依赖项添加到打包项目中。
项目 springboot1 内部 pom 将如下所示:
... <groupId>org.springboot1.module</groupId> <artifactId>springboot1</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> ...
项目 springboot2 内部 pom 将如下所示:
... <groupId>org.springboot2.module</groupId> <artifactId>springboot2</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> ...
打包项目 pom 将如下所示:
... <dependency> <groupId>org.springboot1.module</groupId> <artifactId>springboot1</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springboot2.module</groupId> <artifactId>springboot2</artifactId> <version>1.0-SNAPSHOT</version> </dependency> ...
在您的打包主文件中添加来自依赖项的 @Components 的新位置
@SpringBootApplication @ComponentScan(basePackages = {"org.springboot1.module.one.*","org.springboot2.module.two.*"}) public class Myproject { public static void main( String[] args ) { SpringApplication.run(Myproject.class, args); }
}
运行打包应用程序的主类,它将从两个依赖项目开始。
希望以上步骤将根据您的项目结构进行更多更改。此外,为了更清楚,您还可以参考Maven Project_Aggregation