写在前面
学习编程至今也有好些年头了,一直以来,maven作为java的jar包管理工具发挥着十分重要的作用。而我们总是知道使用工具,缺不知道工具本身做了什么事情。特此,维尼将maven的几个常用命令以及它背后的故事写在这里,希望对大家有所帮助。
语法
语法:mvn [操作指令…]
例如:
mvn clean
mvn clean package
mvn clean install
工作流
解释各个命令的含义
名称 | 描述 | 建议 | 常用指数 |
---|---|---|---|
clean | 将编译/打包后生成的文件清空 | 每次项目打包前都执行一遍 | ※※※※※ |
validate | 校验项目信息准确(注意,这里不会校验源码文件) | 忽略 | ※ |
compile | 将编码进行编译,生成编译后文件 | 一般启动服务器时,会自动执行compile | ※※※※※ |
test | 执行项目所有单元测试 | package前必须执行 | ※※※※※ |
package | 在compile的基础上,并进行JAR/WAR打包工作 | 如果需要打包后到本次仓库,则执行install,否则执行package | ※※※※※ |
verify | 对集成测试结果进行检测 | 忽略 | ※ |
install | 在package的基础上,将打包后的文件存储到本地maven仓库 | 如果需要打包后到本次仓库,则执行install,否则执行package | ※※※※※ |
site | 做插件报告 | 忽略 | ※ |
deploy | 在install的基础上,将打包后的文件存储到远程maven仓库 | 少碰这玩意,很容易导致你打包后的版本丢到远程仓库被别人引用而报错。普通开发者禁用,项目管理者按需使用 | ※※ |
个人经验
作为开发者,一般我们只需要关注几个命令即可
本地开发代码时,主要使用以下三个命令
mvn clean [1]
mvn clean package [2]
mvn clean install [3]
情形一:若遇到项目启动后没有加载到最新的代码变更,可执行【1】
情形二:若需要进行本地项目打包丢到服务器做测试,可执行【2】
情形三:若模块A,模块B都属于源码,模块A引用模块B,则模块B需执行【3】,模块A可执行【2/3】(模块A引用了模块B,则模块B要在本地仓库可以被搜索到才行)