在spring cloud微服务搭建过程中,我们创建了多个model,如图: 

这里写图片描述
 

在项目完工之后,我需要将项目打包部署到服务器,而每次都是进入相应的模块目录下,分别打包: 
这里写图片描述

这样做比较麻烦,下面介绍通过父子工程来实现一次性打包项目。

一.修改聚合父工程

打开父项目的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 

打包结果如下,则表示成功: 

这里写图片描述

在taget下就会生成一个jar包,这就算大功告成啦~~~

微服务spring cloud 价值分享,技术交流 欢迎入QQ群:863634857,一起讨论微服务

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐