Maven项目——打jar包时指定包含的模块和路径

5 篇文章 0 订阅
2 篇文章 0 订阅

最近工作中使用dubbo架构对外提供接口,dubbo接口放在项目的单独模块中,dubbo接口的参数中使用到common模块中的模型,在对外提供jar包的时候需要将common的模型和dubbo接口模块一并打到包中对外提供。

最开始的时候没有考虑到模型的打包,所以打包出来的jar中只包含dubbo接口的class,dubbo消费者在使用接口的时候无法正确传参;后面加入依赖打包的时候将common依赖的其他jar也一并打到jar包中,整个包50M,实际上项目只关注common中定义的数据模型,最完美的只要打包dubbo接口的class和所有数据模型的class。

后续解决如下,在要打包的模块pom文件使用maven提供的插件

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
有关这个插件的详细使用可以google或者百度一下,我从网上搜索到的东西没能直接完成我要的效果,后面经过摸索实现。写完配置后再idea中右侧的maven按钮,选择对应的模块,LifeCycle,package。(指令的话是 mvn 模块名 package吧,这个不清楚,没有探索过,请知道的大佬补充一下)。生成的jar包大小160k,只包含dubbo模块所有的内容和依赖的common模块里面数据模型目录下所有的内容。直接上pom配置
<build>
        <!-- 为最终的jar包取名 -->
        <finalName>iwant</finalName>
        <plugins>
        <!--打包的时候只要common依赖里面的bean目录-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <artifactSet>
                                <includes>
                                    <!--指定需要的jar包,include标签可以多个-->
                                    <include>com.myself.example:myself-common</include>
                                </includes>
                            </artifactSet>
                            <filters>
                                <filter>
                                    <!--指定jar包里面需要的目录-->
                                    <artifact>com.myself.example:myself-common</artifact>
                                    <includes>
                                        <include>com/myself/example/common/bean/**</include>
                                    </includes>
                                </filter>
                            </filters>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

输出的jar包有两个,带有origin字眼的是dubbo模块不包含依赖的jar包,不带origin的才是我想要的jar包。

仅供参考,有疑问可以相互讨论,不过有些问题可能我也不太熟。转载请写明出处

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值