maven对微服务有通用模块的子模块打包

本文介绍了一种在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命令,值得推荐使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值