本文共 3375 字,大约阅读时间需要 11 分钟。
目录
快照(SNAPSHOT)是一种特殊的版本,指定了某个当前的开发进度的副本。不同于常规的版本,Maven每次构建都会在远程仓库中检查新的快照。
2.1、场景描述:
开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布。对于引用了公共库的依赖,如果该依赖的版本号不变,即使Maven服务器上的组件比本地的新,maven也不会主动下载的,因为maven的依赖管理是基于版本管理的。这样就明显不符合要求和实际情况了,但是,如果是基于快照版本,那么问题就自热而然的解决了。
2.2、Maven的仓库分为snapshot快照仓库和release发布仓库。
snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。
2.3、快照版本机制如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,会覆盖老的快照版本,而在使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。
2.4、总结:
所以,我们在开发阶段,可以将公用库的版本设置为快照版本,而被依赖组件则引用快照版本进行开发,在公用库的快照版本更新后,我们也不需要修改pom文件提示版本号来下载新的版本,直接mvn执行相关编译、打包命令即可重新下载最新的快照库了,从而也方便了我们进行开发。
3.1、Maven版本
3.2、SNAPSHOT的含义
同一个SNAPSHOT版本的依赖可以多次发布(deploy)到仓库中,也就是说同一个SNAPSHOT版本的依赖可以在仓库中存在多份,每一份都是代码在某一个特定时间的快照
SNAPSHOT不是一个特定的版本,而是一系列的版本的集合,其中HEAD总是指向最新的快照,对外界可见的一般也是最新版,这种给人的假象是新的覆盖了老的,从而使得使用SNAPSHOT依赖的客户端总是通过重新构建(有时候需要-U强制更新)就可以拿到最新的代码。
例如:A-->B-1.3.8-SNAPSHOT(理解为A依赖了B的1.3.8-SNAPSHOT版本),那么B-1.3.8-SNAPSHOT更新之后重新deploy到仓库之后,A只需要重新构建就可以拿到最新的代码,并不需要改变依赖B的版本。由此可见,这样达到了变更传达的透明性,这对于开发过程中的团队协作的帮助不言而喻。
参考:
项目采用通用的三级版本号,版本号格式是[主版本号].[副版本号].[修复版本号]-[稳定状态],如:1.0.0-SNAPSHOT。
mvn site生成站点和项目文档
经过多方测试和查询,以下配置是可以生成maven 站点文档的
4.0.0 com.starfall.maven MavenJava jar 1.0-SNAPSHOT MavenJava http://maven.apache.org junit junit 3.8.1 test org.apache.maven.doxia doxia-site-renderer 1.8 org.apache.maven.plugins maven-site-plugin 3.7 org.apache.maven.doxia doxia-site-renderer 1.8 org.apache.maven.plugins maven-project-info-reports-plugin 3.0.0 org.apache.maven.plugins maven-javadoc-plugin 2.10.4 org.apache.maven.plugins maven-project-info-reports-plugin 2.9
同时,还配置一个系统环境变量:参考:
变量名:JAVA_TOOL_OPTIONS
变量值:-Dfile.encoding=UTF-8
生成后的target:
打开index.html:
待定。。。。
参考:
参考文献:
转载地址:http://rplci.baihongyu.com/