基础英文单词解释:
svn:subversion
trunk树干,主体
module:模块,组件
release:释放,发布
plugin:插件
artifact构件
schema:概要计划图表
scm:software configuration management 软件配置管理:其中有tag,branch,trunk等关键词
不管怎样,我们都需要建立一个项目并提交到SCM中,这里我以subversion为例。你得有一个配置好的subversion repository,这里我建立了一个空的svn仓库,其地址为:https://192.168.1.100:8443/svn/myapp/ 现在,该目录下只有三个空的典型的子目录:/trunk/, branches/, tags/。分别用来存放主干,分支,以及标签。
Nexus: Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本
snapshot快速的照相,快照!!!
比如我有一个项目,其artifactId为myapp,随着项目的进展,我们会生成这样一些jar:myapp-1.0- SNAPSHOT.jar,myapp-1.0.jar,myapp-1.1-SNAPSHOT.jar,myapp-1.0.1.jar等等。
自动化版本发布(如果你的项目有几十个 module,你就会觉得手工改POM来升级版本是很痛苦的事情),结合自动化发布的过程,这里还会介绍maven-release-plugin(自动化版本发布插件)
POM中改个version
用mvn install
后,新改的内容不生效,一定要后来使用mvn clean install 才生效
mvn install:执行mvn install,会执行前面一系列的动作包括 compile , package , test 等
mvn package打包
或者mvn clean install
项目到一个阶段后,就需要发布一个正式的版本(release版本)。一次正式的发布需要这样一些工作:
- 在trunk中,更新pom版本从1.0-SNAPSHOT到1.0
- 对1.0打一个svn tag
- 针对tag进行mvn deploy,发布正式版本
- 更新trunk从1.0到1.1-SNAPSHOT