欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring cloud 通过父工程打包多个子工程

程序员文章站 2024-02-03 20:50:58
...

在spring cloud微服务搭建过程中,我们创建了多个model,如图:
Spring cloud 通过父工程打包多个子工程
在项目完工之后,我需要将项目打包部署到服务器,而每次都是进入相应的模块目录下,分别打包:
Spring cloud 通过父工程打包多个子工程
这样做比较麻烦,下面介绍通过父子工程来实现一次性打包项目。

一.修改聚合父工程

打开父项目的pom.xml文件,里面有如下基本信息:

<modelVersion>4.0.0</modelVersion>
<name>springcloud</name>
<groupId>springcloud</groupId>
<artifactId>springcloud</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

添加如下信息,这里是继承springboot提供的父工程,这段信息之前我是配置在子工程里面的,现在配于此处,子工程则不需要配置:

<parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>1.5.10.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
 </parent>

声明多个模块:

<modules>
      <module>eureka_server</module>
      <module>service_quan</module>
      <module>service_feign</module>
      <module>service_zuul</module>
      <module>spring_kafka</module>
 </modules>

统一管理依赖的版本号(可加可不加):

<dependencyManagement>
     <dependencies>
         <dependency>
             <groupId>com.example</groupId>
             <artifactId>eureka_server</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.example</groupId>
             <artifactId>service_quan</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.example</groupId>
             <artifactId>service_feign</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.example</groupId>
             <artifactId>service_zuul</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.example</groupId>
             <artifactId>spring_kafka</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
     </dependencies>
 </dependencyManagement>

二.修改子模块,以eureka_server为例,打开它的pom.xml文件:
基本信息:

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>eureka_server</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>eureka_server</name>
  <description>Demo project for Spring Boot</description>

添加如下,继承项目的父工程:

<parent>
      <groupId>springcloud</groupId>
      <artifactId>springcloud</artifactId>
      <version>1.0-SNAPSHOT</version>
 </parent>

其他依赖相关的东西和以前一样,正常编写,如果你的子工程相关依赖都一样的话,可以通通配置到父工程的pom.xml文件中去,我这里有些许差别,就不配置了。
最后,需在各个子模块中添加打包插件,这个插件主要是构建可执行的jar:

<build>
  <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
 </build>

开始打包:

mvn clean package

打包结果如下,则表示成功:
Spring cloud 通过父工程打包多个子工程
在taget下就会生成一个jar包,这就算大功告成啦~~~