繁体   English   中英

如何同时启动两个springboot项目

[英]How to start two springboot projects at the same time

我的项目包括一个视图服务和一个界面服务。 项目目录如下所示:

Myproject/
    springboot1/
    springboot2/

springboot1和springboot2都可以分别运行。我现在启动它们的方法是打开两个终端并执行以下命令:

springboot1

cd Myproject/springboot1/
mvn spring-boot:run

springboot2

cd Myproject/springboot2/
mvn spring-boot:run

有什么办法可以同时启动两个项目? 例如,将全局pom.xml文件添加到Myproject目录中,然后直接在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

尝试这个

mvn springboot1 / spring-boot:运行| mvn springboot2 / spring-boot:运行

您可以创建一个包装程序Spring Boot应用程序,将其作为单独的servlet启动。 它们应位于同级应用程序上下文中,并作为父上下文共享包装器应用程序。 大致如下所示:

public static void main(String[] args) {
    new SpringApplicationBuilder().parent(WrapperApplication.class).web(WebApplicationType.NONE)
        .child(Application1.class).web(WebApplicationType.SERVLET)
        .sibling(Application2.class).web(WebApplicationType.SERVLET)
        .run(args);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM