目录

前言 

一、maven命令

二、项目结构

三、Terminal命令窗口

四、执行命令

五、maven插件自定义命令


前言 

在微服务项目中,往往有多模块的项目依赖,比如公共包,往往被所有子服务所依赖打包的时候都是整体微服务打包,但是我们发布升级的时候,往往又只需要其中一个服务,而整体打包太慢,打了很多不需要的包,这时候就需要对单独的一个服务进行打包了。如果直接进入模块目录下执行mvn命令,或者使用maven插件一般会失败,报错找不到程序包,但是IDEA确可以进行导航。因为单个模块或服务没有聚合模块pom中的信息或者一些本工程内依赖的其他模块就会构件失败。

 这时候我们可以使用terminal黑窗口进行打包。

一、maven命令

-pl:指定打包的模块,可以用路径也可以用坐标,如果父项目同时是父目录,那么进入父目录下,直接“-pl 项目目录名”即可;

-am:意味着also-make (dependency),即同时打包依赖的模块;

-amd:意味着also-make-depnedents,即同时打包依赖该模块的模块;

打包命令格式如下:

mvn clean install -pl 服务groupId:服务的artifactId -am -D maven.test.skip=true 

示例:

二、项目结构

我们要对yudao-module-device-biz这个子服务进行打包。

SpringCloud微服务多模块打包、单服务打包_spring

SpringCloud微服务多模块打包、单服务打包_spring cloud_02

三、Terminal命令窗口

SpringCloud微服务多模块打包、单服务打包_微服务_03

四、执行命令

mvn clean install -pl cn.iocoder.cloud:yudao-module-device-biz -am -D maven.test.skip=true

SpringCloud微服务多模块打包、单服务打包_spring cloud_04

SpringCloud微服务多模块打包、单服务打包_spring cloud_05

五、maven插件自定义命令

每次用Terminal来操作打命令太麻烦了,我们可以在maven插件中进行自定义命令。 

SpringCloud微服务多模块打包、单服务打包_自定义_06

SpringCloud微服务多模块打包、单服务打包_maven_07

SpringCloud微服务多模块打包、单服务打包_spring_08

兄弟们,点个赞再走。