【说明】使用maven+svn+hudson进行持续集成开发方法
一 : 使用maven管理项目
1 maven主要的配置文件settings的主要配置介绍
settings文件的主要配置的解释:
localRepository: 本地仓库配置路径
offline : 是否是离线的,这个一般不用配置,离线的话会无法下载中央仓库的包
servers: 配置用户名密码,用来访问nexus
mirrors:用来访问其他库
profiles :个性化配置,需要激活
2:在pom.xml文件配置上传的路径,例如如下[可以把上传的路径和下载路径写为同一个]
1) 配置pom文件
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>releases</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>
2) 执行命令 :mvndeploy
结果如下:
3:配置下载的路径
1)主要配置文件:
<repositories>
<repository>
<id>central</id>
<name>Central</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/central/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
2) 添加一个依赖会自动下载
此图为测试了加上一个本地没有的依赖后会从 私有中央仓库下载jar包,下载的路径为pom.xml配置的中央仓库路径而非默认路径
4把普通项目转化为maven项目的方法:
1)首先eclipse已经安装了maven的插件,并且已经配置好了.
2)新建一个空的maven项目
3) 把项目中的java文件放在maven对应的目录下
4) 配置 pom.xml文件,添加依赖,和上传中央仓库路径,从中央仓库下载jar包的路径
配置pom.xml依赖
会显示如下界面,查找需要的jar即可
二: 使用maven整合nexus 管理中央仓库
1下载nexus文件
本实例用的版本时nexus-2.5.1-01-bundle.zip,下载地址可以在官网上下载
2启动nexus 。先解压nexus,然后cmd到解压后的目录下,启动服务
[默认的中央仓库的路径就是在当前的目录下]
[Central下载仓库路径]:
3 打开首页
http://127.0.0.1:8081/nexus/index.html#welcome
在右上角登录 admin/admin123会进入到主页面
4中央仓库结构
Repositories 是中央仓库集合,下面分为几个仓库,有Releases(发布版)/Central(中央仓库)/Snapshots(开发版)等多个仓库
5 私有仓库
用户远程使用自己建立私有的中央仓库已在上一章的3说到了,想要使用私有仓库需要进行一些配置,选中Central,打开configuration,如下图所示:
默认 DownloadRemote Indexes 为false,改为true,保存即可。重新登录并坚持仓库路径,发现好多常用的jar包已经被下载
三: 整合hudson持续集成开发
实现了jar包上传下载管理后,如果是个较大的项目,需要保证项目持续集成开发的话,还需要使用hudson,进行对项目的定时编译
1 下载hudson ,本实例下载是最新的,可以很容易在官网上下载
hudson-3.0.1.war
2 启动hudson,默认使用的是8080端口
因为hudson是个jar文件,所以
Cmd到hudson目录下
输入命令
java -jar hudson-3.0.1.war
3 打开首页
http://localhost:8080/,如下图所示:
4 进行系统配置:
只配置两个地方jdk路径和maven的路径,如图:
下面就可以进行建立新的工程了,在建立工程前,持续开发用到了svn,所以要先进行
SVN的配置
5 SVN配置
Svn主要需要下载三个资源(客户端,服务器端,Eclipse的SVN插件)
测试实例用的路径为 file:///d:/MySVNRepo,启动好服务后,把代码上传到SVN上
6 建立Hudson工程
选择构建一个自由风格的软件项目
7 填写svn路径
此处需要加上SVN资源路径: file:///D:/MySVNRepo/mavenT
8 填写执行周期和maven的执行命令点击保存
*/10**** 表示每隔10分钟构建一次
9 点击立即构建,查看构建结果,编译成功
点击console可以查看项目构建的流程
1) 先创建一个工作空间workspace
2) 更新svn的文件,查看是否有更新变化,如果有就会下载下来
3) 执行命令mvn XXXX(命令)
4) 返回结果 SUCCESS/FAILURE
如果看的不清楚,请看下面详细记录
Started by user anonymous
Updating file:///D:/MySVNRepo/mavenCheck2 revision: 2013-7-17 13:52:26 depth:infinity ignoreExternals: false
U src\main\java\com\check2\CheckMaven2.java
At revision 18
[workspace] $ mvn.bat package
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for propCheck2:mavenCheck2:jar:8.0.0
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: activeio:activeio:jar -> version 1.1 vs 2.0-r118 @ line 35, column 15
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building mavenCheck2 8.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mavenCheck2 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ mavenCheck2 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ mavenCheck2 ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ mavenCheck2 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ mavenCheck2 ---
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ mavenCheck2 ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.767s
[INFO] Finished at: Wed Jul 17 13:52:50 CST 2013
[INFO] Final Memory: 7M/17M
[INFO] ------------------------------------------------------------------------
Finished: SUCCESS