• 微服务项目(maven父子级项目)怎么打包


    本篇当中重点记录微服务项目(maven父子级项目)打包插件,文章没有一句废话, 就是直接复制粘贴到自己项目就可以用,亲测有效!

    项目层级结构:

    这是最近做的微服务练习,项目是一个典型的聚合工程,mscloud的依赖就是用来管理版本号的,所有微服务有一个公共的依赖模块,就是专门存放util相关的common模块。

    在实际开发当中层级结构大同小异,有的甚至会将service、dao都拆分成单独的模块。但是对于打包来说,是一样的。

    关于ider创建聚合项目不熟练的,可以看一下我的这一篇文章:
    https://blog.csdn.net/weixin_43888891/article/details/125267683

    在这里插入图片描述

    父工程打包依赖:

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <!-- 打包跳过单元测试 -->
                <configuration>
                    <skipTests>true</skipTests>
                    <testFailureIgnore>true</testFailureIgnore>
                </configuration>
            </plugin>
    
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    子工程打包依赖:

    关于spring-boot-maven-plugin插件不了解的可以看我的这一篇文章:
    https://blog.csdn.net/weixin_43888891/article/details/122523633

    关于Maven当中resources标签不懂的可以看我的这一篇文章:
    https://blog.csdn.net/weixin_43888891/article/details/122406081

    本次依赖当中并没有用到resources标签,resources标签一般是当我们打出来的jar包少文件的时候会配置,但是基于上面项目案例,使用本篇文章的依赖打包 并没有出现少文件的情况所以没用到。

    <build>
        <!-- 打出来的jar包名 -->
        <finalName>consumer-consul</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.2</version>
                <configuration>
                	<!-- 主启动类全类名 -->
                    <mainClass>
                        com.gzl.cn.OrderConsulMain80
                    </mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <!--可以把依赖的包都打包到生成的Jar包中-->
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    打包流程:

    一定是clean install根项目,也就是父项目,原因就是common项目是其他服务所依赖的项目,假如common有变化,而你只是clean install单个的微服务,这时候就会出现common新加的代码,你并没有依赖进去,如果你项目用到了common新加的类,这时候打包可能直接就报错了。

    在这里插入图片描述

  • 相关阅读:
    【嵌入式】STM32控制脉冲个数
    DOA估计算法——Capon算法
    使用JLINK给GD32下载程序
    都有哪些查找和下载英文文献的方法?
    初级算法题(上)
    #前端#scss学习
    innodb_ruby 视角下 MySQL 记录增删改
    【什么是高斯分布?还有什么分布?他们的用途是什么?】
    【无标题】
    CSAPP Lab5:Shell
  • 原文地址:https://blog.csdn.net/weixin_43888891/article/details/125630594