Maven编译指定(跳过)Module - batch-norm - 博客园

返回主页

batch-norm

Maven编译指定(跳过)Module

今天在项目里新添加了一个Module, 但是在jenkins编译的时候会将这个Module也编译, 问题是这个Module根本不需要编译而且巨慢。

因此我只想编译指定模块 ModuleA以及它依赖的必须模块, 以下是相关的命令

-am --also-make 同时构建所列模块的依赖模块;
-amd -also-make-dependents 同时构建依赖于所列模块的模块;
-pl --projects <arg> 构建制定的模块,模块间用逗号分隔;
-rf -resume-from <arg> 从指定的模块恢复反应堆。

我本来的模块是

<modules>
        <module>ModuleA</module>
        <module>ModuleB</module>
        <module>ModuleC</module>
        <module>ModuleD</module>
        <module>ModuleE</module>
    </modules>

首先查看一下依赖关系

mvn dependency:tree

当不然不是上面这句, 所有的依赖关系太复杂了, 会列出依赖的所有的包

自己打开各个module的pom看一下互相之间的依赖就行

假如只想编译ModuleB及其依赖的模块, 那么在编译的时候

mvn clean install -pl ModuleB -am 

假设Module依赖了A和C, 那么在编译的时候就只会编译A B C三个模块~

如果ModuleD依赖了B, 然后在编译的时候使用了-amd的话, 那么ModuleD也会被编译, 这个意思就是编译依赖了所列模块的模块

mvn clean install -pl ModuleB -am -amd

使用上面的命令会同时编译 A B C D ~

-rf 选项用于选择起始位置(发现结合-rf的时候, -am和-amd是需要后置的)

假设ModuleA和ModuleC都依赖ModuleB, 那么如果在ModuleB截断, 整个流程不会变, 如果在ModuleA截断, 那么只会从ModuleA开始执行后面的构建流程。

mvn install -pl ModuleB -am -amd -rf ModuleA

上面的命令是从ModuleA开始截断的

总结

一般来说经常用到的命令, 你想编译的Module: ModuleX

mvn clean install ModuleX -am

这行就够了。

posted @ 2019-08-09 16:32  batch-norm  阅读(10973)  评论(1编辑  收藏  举报
Copyright © 2023 batch-norm
Powered by .NET 7.0 on Kubernetes

相关推荐

  • 小米全球副总裁离职,曾带队将小米手机销量做成印度第一
  • 还是第一次见这么画架构图的,果然是阿里 P9 | 极客时间
  • 职业“倦怠”期开发者如何转变心态
  • 从 JS 到全生态,云原生时代下的前端成长演进之路 |展望前端工程师的 2023
  • 为谷歌工作 16 年被当“垃圾”无情辞退,数千网友留言:为公司“卖命”不值得
  • 网景浏览器停止支持 | 历史上的今天
  • ChatGPT “克星”出现,OpenAI 重磅发布全新 AI 鉴别工具,网友吐槽:失败率太高啦!
  • 他是中国最野画家,96岁撩林青霞开法拉利,却独宠初恋76年
  • 又野又欲的内裤!日本女人都穿它,肚子平了,腰也细了,舒适显瘦一整天
  • 《流浪地球2》取景地被曝!曾是“中国最美”,却被关闭,黄渤发文怀念:再见了
  • 13张动图快速理解马尔科夫链、PCA、贝叶斯!
  • 美团面试:这个 SQL 语句加了哪些锁?
  • 那些让你起飞的计算机基础知识!
  • 胡歌有娃了!他在努力照顾身边的所有人,甚至包括大厂的程序员们
  • 今日公开课|2023面试突击重点:p8亲授微服务架构设计
  • 往代码里掺东西?!2023最恶心人的操作诞生了......
  • 挑战,一天开1000公里。
  • Prompt Tuning已经全面超越 Fine Tuning了?
  • ChatGPT官宣模型升级!终于做对数学求导了,半小时挤爆服务器
  • 《财富》发表:ChatGPT的内幕故事