maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。
deploy发布
传统的web项目一般会有一个api模块,用于发布对外的RPC接口,如Dubbo。这个时候一般通过发布jar包,提供maven坐标的方式,让别人引入你的依赖。这个时候可以直接通过maven deploy命令直接发布快照版本到私服。
像IDEA这种集成环境,可以通过简单的点击直接发布。
同时需要注意,maven基于 POM文件中的 version来确定你将要发布的 SNAPSHOT还是 release。所以不能瞎命名,容易把不稳定的 jar包发布到 release仓库。
Release命令发布
比较复杂的是通过 mvn release:prepare和 mvn release:perform来发布,这种发布会自动升级版本,不用手动维护POM文件中的version版本。
流程:
- 发版之前需要保证本地文件提交,否则会导致发版失败 =>发版前要commit
- 发版之前需要保证本地成功执行 mvn checkstyle:checkstyle,否则会导致发版失败(可选)
- 发版之前需要保证mvn仓库无重复版本,git上无重复的Tag,否则会导致发版失败
要清楚本地tag和远程tag - 发布之前需要保证本地成功执行mvn clean install -Dmaven.test.skip=true,否则会导致发版失败,而且有效性只有一次,修改代码后需要重新执行该命令。
- 发版命令: