Maven是什么?
1.构建工具
2.依赖管理工具
3.项目信息聚合
版本控制系统信息,项目站点:javadoc、代码静态分析报告......
Maven核心概念:坐标、依赖、仓库、生命周期、插件
1.坐标
2.依赖
依赖优先原则:
依赖最短路径优先原则
pom文件中申明顺序优先
覆写优先
3.仓库
本地所有Maven项目都复用一个本地仓库
4.生命周期
包括clean、default、site三个生命周期
常用的是前两个周期,clean和default
5.插件
Maven本身是一个框架,实际的任务都是插件完成的,插件与生命周期阶段绑定,用户通过指定生命周期阶段就能够隐式的通过插件执行任务
分为内置绑定和自定义绑定:
自定义绑定,通过
-Dskip Tests 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下
-Dmaven test skip=true不执行测试用例,也不编译测试用例类
maven常用命令:
编译命令:mvn clean install -Dcheckstyle.skip=true -DskipTests -Dmaven.test.skip=true
查看依赖树:mvn dependency:tree
查看有效pom:mvn help:effective-pom
安装一个包到本地仓:mvn install:install-file -Dfile=...
部署一个包到远程仓:mvn deploy:deploy-file ...
maven三套生命周期
https://www.runoob.com/maven/maven-build-life-cycle.html
clean:
pre-clean
clean
post-clean
default:
site:
maven批量更新版本号
maven项目中,多模块开发比较常见,各个子模块和父模块版本号保持一致,出现问题,父版本号变化后,有什么办法能把子模块的版本号一起更新吗?
使用插件versions-maven-plugin。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
-
更新版本号:mvn versions:set -DnewVersion=3.0.0
-
回滚: mvn versions:revert
-
提交: mvn versions:commit