一、软件及环境
1、 软件
1.1 jdk-6u11-windows-i586-p.exe
1.2 eclipse-jee-indigo-SR2-win32.zip
1.3 nexus-2.0-bundle.zip
1.4 apache-maven-3.0.5-bin.zip
1.5 VisualSVN-Server-2.7.2.msi
1.6 TortoiseSVN-1.8.3.24901-win32-svn-1.8.4.msi
1.7 LanguagePack_1.8.3.24901-win32-zh_CN.msi
2、 环境
Windows XP
二、安装
安装都挺简单的,要注意的是要设置环境变量,安装完以后检查是否安装成功。
2.1 JDK安装
Ø 安装到D盘(我一般都安装到该盘下,当然也可以安装到其它盘。)
Ø 设置环境变量
(JAVA_HOME: D:\Java\jdk1.6.0_11)
(CLASSPATH: .;%JAVA_HOME%\bin\dt.jar;%JAVA_HOME%\bin\tools.jar;)
(Path: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;)
Ø 查看安装是否成功:java –version
注意:如果没有配置环境变量,查看的时候也是成功的,但是设置eclipse的时候JDK会有问题。
2.2 Maven安装
Ø 解压到D盘
Ø 设置本地库,默认为C:\Documents and Settings\Administrator\.m2,
打开D:\Maven\conf\setting.xml,添加localRepository节点。(当然这步也可以不去做。)
(<localRepository>F:/Maven/repository</localRepository>)
Ø 设置环境变量
(MAVEN_HOME: D:\Maven)
(Path: %MAVEN_HOME%\bin;)
Ø 检查是否安装成功:mvn –version
2.3 Nexus安装
Ø 解压到D盘
Ø 启动Nexus,进入D:\Nexus\nexus-2.0\bin\jsw\windows-x86-32(根据你的系统选择相应的目录),双击console-nexus.bat启动。
(看到0.0.0.0:8081 STARTING,说明启动成功了。)
Ø 配置Nexus,首先登录http://localhost:8081/nexus/index.html#welcome,
点击右上角的Log In,登录系统(默认帐号:admin,密码:admin123),然后选左侧菜单Repositories,进入(面板上各项内容请参考相关资料)。
找到Type为proxy,分别为Apache Snapshots、Central及Codehaus Snapshots,逐个选中更改Configuration中的Download Remote Indexes为True。
再逐个右击选中Repair Index。
选中Public Repositories,查看Configuration中Ordered Group Repositories中是否如下图所示(默认是这样的,如果不是请移过来。)
Ø 其它的大家自行摸索吧,像常用的,建任务,添加第三方引用及搜索中。
注意:刚开始搜不到什么东西,需要同步一段时间才行。
2.4 其它安装
这里不再重复了,很简单。
说明:安装VisualSVN Server是为Maven使用SVN命令正常,当然你也可以安装其它的svn server,只要保证svn –version成功即可。
三、应用
3.1 前提
找一个免费的SVN服务,有的话就更好了,推荐去http://www.svn999.com开通个。开通后,创建项目,用于测试。SVN的用户和密码就是你的登录帐号和密码。
3.2 新建项目
Ø 建立Maven项目,使用Eclipse,New Project,选择Maven Project,
进入下一步,按默认,注意工作目录,选择你想要建立的地方,
进入下一步,选中Artifact Id为maven-archetype-quickstart,
进入下一步,将Group Id、Artifact Id及Package填写你自己项目信息,注意Version,这里我填写的是1.0.0-SNAPSHOT,默认为0.0.1-SNAPSHOT。
点击完成,项目创建成功。注意JDK版本,默认为JavaSE1.5,需要调整到1.6版本,如下图所示:
生成的项目是Maven标准项目结构,我们先将它变成常见的普通项目结构,需要删除src/main/java和src/test/java,重新新建src源文件目录。
(删除过后的结构)
(New Source Folder)
(创建过后的结构,可能src下包含main和test目录,请删除掉)
我们打开pom.xml,默认的配置内容:
首先我们需要定义上面更改的项目结构,以便maven识别,在project节点下添加如下配置。
再配置一些Maven常用的插件,在build节点下创建plugins节点,如:
在plugins节点下添加处理资源文件的插件:
在plugins节点下添加编译JAVA文件的插件:
在plugins节点下添加处理打包源码的插件:
注意,请将该插件版本升级到2.1.1,以前的版本在发布时有BUG。
在plugins节点下添加构件部署的插件:
在plugins节点下添加生成JAVADOC的插件:
在plugins节点下添加测试的插件:
3.3 配置
Ø Nexus与Maven配置
打开Maven安装目录下的setting.xml文件,首先添加Nexus的镜像,在mirrors节点添加如下配置:
再接着添加Nexus的profile,在profiles节点下添加如下配置:
请注意id,再接着我们需要激活配置,请在settings节点下配置如下:
为了能让构件成功分发到私服上,我们还得在servers节点下加入如下配置:
请注意用户和密码要设置你自己的。到此,该配置已完成。
Ø Nexus与项目配置
打开前面刚新建的test项目的pom.xml文件,在properties节点下定义Nexus的主机地址
我们需要分发构件在私服,还得在project节点下加入如下配置:
注意这里面的ID,要与在Maven中认证的ID一致。
Ø SVN与项目配置
同样需要在test项目的pom.xml文件中配置,在properties节点下定义SVN的主机地址
在project节点配置SCM信息,让maven完成svn系列操作
在plugins添加自动化项目版本发布的插件:
3.4 使用TortoiseSVN
Ø 浏览svn 项目服务(svn://www.svn999.com/zhoulieqing.tbynet)
Ø 创建三个文件夹(branches、tags及trunk)
Ø 配置提交过滤文件
我们提交文件的时候有些是不需要提交,像eclipse项目环境文件、maven的target目录等,如果提交了,很可能出现一些冲突。在页面右击,找到TortoiseSVN菜单下的设置
进入Subversion配置文件,单击“编辑”按钮。找到# global-ignores,在下面加入如下一句话:
global-ignores = .settings .project .classpath target classes lib
Ø 提交项目到SVN服务
首先需要将项目导入SVN服务,右击test项目,找到TortoiesSVN下的导入菜单
并在版本库URL 输入svn://www.svn999.com/zhoulieqing.tbynet/trunk
再“确定”
再“确定”,完成提交。
Ø 在同级目录检出项目
前面仅仅提交项目,我们还需要将项目重新检出到本地才行,右击找到SVN检出菜单
注意版本库URL,就是刚才导入URL,同时检出至目录,要改到项目的根目录。再“确定”
再“确定”,完成检出。我们查看现在的项目目录结构:
3.5 执行
Ø 创建版本分支
在发布项目之前,我们需要该版本的分支,用于以后的BUG修改,当然还需要合并到主干上。用mvn release:branch -DbranchName=1.0.x -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false
执行命令,会提示“分支中的版本号是多少?”,我们输入1.0.1-SNAPSHOT
回车,执行
看见BUILD SUCCESS,说明我们的分支建立成功。我们再看看版本库中的branches下是否成在1.0.x的目录。
我们再查看该目录下的pom.xml的版本是不是已经更改为1.0.1-SNAPSHOT
Ø 版本升级,打标签
分支已经好了,我们该升级主干的版本和打标签。使用mvn release:prepare
回车执行,中间会遇到一些提示,其它的直接回车就行,在“What is the new development version for "test”?<com.tbynet.test>1.0.1-SNAPSHOT": :”输入1.1.0-SNAPSHOT
再回车,
看见BUILD SUCCESS字样,说明升级成功,我们可以在版本库tags目录下发现test-1.0.0目录。
Ø 发布版本
仅上面操作还没有达到我们最终目的,在私服上发布项目,不信,我们去私服上搜搜看。
没有。我们需要通过另一个命令来完成该步骤:mvn release:perform
回车执行
看到BUILD SUCCESS,说明发布成功,我们可以在Nexus私服上搜索下。
我们也可以看到test项目的pom.xml的版本已经改成了:1.1.0-SNAPSHOT