使用Maven发布项目

本文介绍如何使用maven发布项目到SVN,进而对项目进行版本控制。本文相关概念参考自《Maven最佳实践:版本管理》

 

使用的开发环境如下(需要确定在命令行窗口里可以运行svn --version; mvn --version命令):

maven3.0.5  
TortoiseSVN-1.8.1 安装时需要勾选安装svn命令行工具
SVN仓库(SvnRepo) 需自行配置
Maven仓库(MavenRepo) 使用SVN仓库搭建,具体过程可参考《使用SVN搭建Maven仓库》

 

具体步骤如下:

1.使用TortoiseSVN打开远程SvnRepo,并创建如下目录



 

相关目录说明如下:

hi-maven 后面将创建的maven项目名称
branch 用于存放hi-maven的分支项目
tag 用于存放hi-maven的已发布版本的项目
trunk 用于存放hi-maven的主干项目,即当前修改中的最新版本的项目

 

2.在Eclipse里创建hi-maven项目,基本信息如下:

	com.bingo.hello
	hi-maven
	0.0.1-SNAPSHOT
	jar
	hi-maven
 

3.打开项目的pom.xml文件,添加如下配置:

 

相关变量设置(注意:project.svn.scm.url指向SvnRepo仓库,project.svn.maven.repository指向MavenRepo仓库):


  UTF-8
  http://your_host/SvnRepo
  http://your_host/MavenRepo

 

设置scm信息,指定存放主干项目的svn地址:


  ${project.svn.scm.url}
  scm:svn:${project.svn.scm.url}/${artifactId}/trunk
  scm:svn:${project.svn.scm.url}/${artifactId}/trunk
 

设置部署信息,指定部署项目的Maven仓库(请自行在settings.xml里配置服务器身份认证信息):


		
			maven-release-repository
			Maven Release Repository
			svn:${project.svn.maven.repository}/release
		
		
			maven-snapshot-repository
			Maven Snapshot Repository
			svn:${project.svn.maven.repository}/snapshot
		
 

设置wagon插件,用于部署项目到SVN服务器上的Maven仓库:


	org.apache.maven.plugins
	maven-deploy-plugin
	2.7
	
		
			com.google.code.maven-svn-wagon
			maven-svn-wagon
			1.4
		
	

 

 

设置release插件,用于发布项目到SVN仓库:

注1:此插件需要使用svn.exe执行svn命令,因此必须确保在命令行窗口里可以执行svn命令

注2:此插件也可配置maven-scm-plugin使用javasvn执行svn命令,但是目前仅支持svn1.7


	org.apache.maven.plugins
	maven-release-plugin
	2.4.1
	
		${project.svn.scm.url}/${artifactId}/tag
	

 

4.打开命令行窗口,切换到hi-maven项目根目录,运行mvn deploy命令,把项目部署到MavenRepo仓库。部署结果如下,因为当前项目版本号为0.0.1-SNAPSHOT,所以项目部署到了MavenRepo/snapshot目录下:
使用Maven发布项目_第1张图片
 

5.接着介绍项目发布。在项目根目录下,右键-->TortoiseSVN-->Import...,把项目导入SVN仓库的SvnRepo/hi-maven/trunk/hi-maven目录下作为主干项目。接着再右键-->SVN Checkout...,把刚才导入的项目重新checkout到项目根目录下(直接覆盖现有的文件),checkout出的项目如下:
使用Maven发布项目_第2张图片
 

6.在步骤4的命令行窗口里运行mvn release:prepare(在执行命令时会提示输入新的版本号等信息,直接选择默认值即可):

注1:运行此命令前,需要把所有已修改的文件签入SVN

注2:只能在命令行窗口运行此命令,如果在Eclipse里运行,会提示无法执行svn命令等错误

注3:如果报错,可再运行mvn release:rollback回滚前一次发布过程

 

运行此命令会执行如下操作:

(1) 把项目版本号改为0.0.1,然后上传到SvnRepo/hi-maven/tag/hi-maven-0.0.1/hi-maven/目录

(2) 把项目版本号改为0.0.2-SNAPSHOT,然后上传到SvnRepo/hi-maven/trunk/hi-maven/目录
使用Maven发布项目_第3张图片
 

7.接着在命令行窗口运行mvn release:perform发布项目,此命令将下载步骤6迁入的hi-maven-0.0.1项目到本地进行编译,然后把编译结果打包部署到maven仓库,如图(因为项目版本号为0.0.1,所以发布到MavenRepo/release目录下):
使用Maven发布项目_第4张图片
 

8.如果有需要,可运行mvn deploy,把hi-maven的0.0.2-SNAPSHOT部署到Maven仓库,如图:
使用Maven发布项目_第5张图片
 

 

顺便一提,如果不使用Maven,操作步骤如下:

1.把hi-maven(0.0.1-SNAPSHOT)迁入trunk/hi-maven目录下

2.把hi-maven(0.0.1-SNAPSHOT)手工部署到MavenRepo/snapshot目录下

3.修改版本号为0.0.1,把hi-maven(0.0.1)迁入tag/hi-maven-0.0.1目录下

4.把hi-maven(0.0.1)手工部署到MavenRepo/release目录下

5.修改版本号为0.0.2-SNAPSHOT,把hi-maven(0.0.2-SNAPSHOT)迁入trunk/hi-maven目录下

6.把hi-maven(0.0.2-SNAPSHOT)手工部署到MavenRepo/snapshot目录下

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Maven)