maven对微服务有通用模块的子模块打包
前言
在maven工具之下,Java微服务项目中,一般会有“common”相关的通用模块,其他业务模块依赖于它,如果maven的pom文件配置不对,在父模块节点使用mvn package 或IDEA自带的package操作,会报错。
网上一堆相关文章,亲自尝试后解决无果。遂自行尝试出一套解决方案,供大家操作。
code
首先父pom文件之中,需要加上配置的内容是。因为父模块没有main启动方法,所以不需要 spring-boot-maven-plugin 。记住只有在父pom之中才在packing中用“pom”,而其他子模块一律用“jar”。
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- 默认关掉单元测试,不用手动关闭了 -->
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
然后在通用模块之中,也就是没有main主方法的公共模块中,加上配置。这个很关键,千万不要使用<packaging>pom</packaging>,其他的暂且不需要加。
<packaging>jar</packaging>
再在其他模块之中,加上配置内容。切记千万不要使用<packaging>pom</packaging>
<packaging>jar</packaging>
······
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<!-- 将依赖到的包都放进去 -->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后在父模块使用 mvn package 命令打jar包,这里我是用IDEA的Maven Helper插件,非常好用,各个模块之间一键使用mvn命令,值得推荐使用。
