多模块pom文件,仅针对部分模块操作的maven技巧

公司项目区使用maven,用maven的module划分了项目中各层的代码,维护其中的依赖关系,其中junit测试层依赖了web层(war类型module),因此无法直接通过maven命令打包,因为war包无法打到jar里。

示例pom:

<modules>
	<module>common/dal</module>
	<module>common/util</module>
	<module>core/model</module>
	<module>core/service</module>
	<module>biz/shared</module>
	<module>biz/task</module>
	<module>biz/service-impl</module>
	<module>common/service/facade</module>
	<module>common/service/integration</module>
	<module>web/home</module>
	<module>deploy</module>
	<module>test</module>
</modules>

此问题由来已久,但一直未真正解决,期间使用git切分支,在release分支上删除test模块的方式解决打包问题,但公司内部还有人在使用svn,git的分支特性并不能很好地被应用,也不适合为了这么一点事推翻公司固有的传统。

解决这个问题最好的办法就是通过命令,选择性地编译和打包,而此前半年多,我竟然始终没有google,baidu到合适的方法。苍天,原来解决的方法就在 help 里:

usage: mvn [options] [<goal(s)>] [<phase(s)>]

Options:
 -am,--also-make                        If project list is specified, also
                                        build projects required by the
                                        list
 -amd,--also-make-dependents            If project list is specified, also
                                        build projects that depend on
                                        projects on the list
...
 -pl,--projects <arg>                   Build specified reactor projects
                                        instead of all projects
...

-am:如果 pl 参数存在,就同时构建 pl 参数所列模块依赖的其他模块
-amd:如果 pl 参数存在,就同时构建依赖于 pl 参数所列模块的其他模块
-pl,--projects <arg>:构建指定模块,多个模块用逗号(,)分隔

最终POM文件不用做任何变更,只要在打包脚本中使用以下命令即可实现排除test模块构建:

mvn clean package -pl deploy -am -Dmaven.test.skip

模块名如果包含/也是可以的

mvn clean package -pl common/service/facade,common/util -am -Dmaven.test.skip

感叹下,学会 --help 是多么重要

转载于:https://my.oschina.net/mays/blog/810468

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值