一、maven的目标
Maven的主要目标是允许开发人员在最短的时间内理解开发工作的完整状态。为了实现这一目标,Maven处理了几个关注领域:
1.使构建过程变得简单
2.提供统一的构建系统
3.提供优质项目信息
4.支持更好的开发实践
二、maven构建生命周期的几个阶段
1.validate: 验证项目是正确的,并且所有必要的信息是可用的
2.compile: 编译项目的源代码
3.test: 使用合适的单元测试框架测试编译后的源代码。这些测试不需要对代码进行打包或部署
4.package: 获取编译后的代码并将其打包成可分发的格式,例如JAR。
5.verify: :运行所有的检查来验证包是否有效并满足质量标准
6.install: 将包安装到本地存储库中,以便在本地其他项目中作为依赖项使用
7.deploy: 在集成或发布环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享
8.clean: 清除历史构建的artifacts
9.site: 为这个项目生成可视化文档
三、常用命令
1.清理并打包
mvn clean package
2.清理并install
mvn clean install
3.查看当前项目已被解析的依赖
mvn dependency:list
4.强制检查更新后打包
mvn clean package -U -U参数,强制检查更新,防止缓存等原因使用历史依赖
5.打包并排除单元测试
mvn clean package -D maven.test.skip=true
6.指定环境打包
mvn clean package -P test
7.发布jar包
mvn clean deploy -D maven.test.skip=true
注:需再pom文件中增加配置distributionManagement元素,配置要发布的私有仓库地址信息,
私有仓库的密码等信息在setting.xml文件中配置。
四、maven标准的文件结构目录
五、maven的依赖原则
项目中可能存在A、B项目同时依赖common.jar这个包,但是他们依赖的版本不同,maven是如何判断该使用哪个版本的呢?
1.最短路径原则: A->B->C(version:1.0.0) , A->D->E->C(version:1.0.1) 那么最终则使用version1.0.0
2.声明顺序有限:A->B-C(version1.0.0), A->D->C(version:1.0.1) 那么如果再pom文件中先声明了D的话,最终依赖的版本为version1.0.1