Hudson+Maven+SVN 自动调度

Hudson+Maven+SVN 自动部署

Hudson+Maven+SVN 自动部署

 

 

自动化部署工作报告

工作目的:实现自动化部署工作,以期提高开发项目的工作效率;

工作内容:利用开源的可持续集成工具,实现java项目的自动编译、打包、发布等工作流程;

具体工作内容如下:

一、    自动化部署的环境搭建;

二、    Mavenjava项目的编译、打包与发布;

三、    Hudsonjava项目实现自动化的编译、打包与发布;

现逐点论述如下:

一、  自动化部署的环境搭建

自动化部署需要如下几样工具:1.jdk的安装;2.web服务器(tomcat 6.0);3.svn客户端与服务器端;4.maven5.hudson及其相应插件的安装;

1. jdk的安装

安装JDK(Java软件开发工具包,JRE)(76.6 MB).EXE,一般都是一路点击next,最后点击finish,结束安装;

这样就把环境变量设置好了;

以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。先打开“开始”->“运行”,打入“cmd”,进入dos系统界面。然后打“java -version”,如果安装成功。系统会显示java version jdk"1.4.08"......(不同版本号则显示不同)

2.Apache Tomcat V6.0.EXE 的安装

运行apache-tomcat-6.0.16.exe,一直
单击【Next】按钮就完成了。安装时,它会自动找到你的JDK安装路径。需要设置几个环境变量:
­CATALINA_HOME =Tomcat
解压目录,我们这里就是CATALINA_HOME=C:tomcat6
ClassPath =%CATALINA_HOME%lib;

启动Tomcat后,在浏览器地址栏输入http://localhost:8080/ 显示下图:

 

 

3.svn客户端与服务器端安装

服务器端公司已安装,在此就不再多讲了。

svn客户端TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi安装

安装在此不再详述;主要是通过客户端与服务器端连接,公司服务器端svn://192.168.1.240/svn_py/,并在服务器端开启权限,建立自己的目录:svn://192.168.1.240/svn_py/test_yang

4.maven

在安装Maven之前,首先要确认你已经正确安装了JDKMaven可以运行在JDK 1.4及以上的版本上。本书的所有样例都基于JDK 5及以上版本。打开Windows的命令行,运行如下的命令来检查你的Java安装:

C:UsersJuven Xu>echo %JAVA_HOME%

C:UsersJuven Xu>java -version

上述命令首先检查环境变量JAVA_HOME是否指向了正确的JDK目录,接着尝试运行java命令。如果Windows无法执行java命令,或者无法找到JAVA_HOME环境变量。你就需要检查Java是否安装了,或者环境变量是否设置正确。

解压缩che-maven-3.0.3-bin.zip到相应目录,这里的Maven安装目录是D:binapache-maven-3.0,接着需要设置环境变量,将Maven安装配置到操作系统环境中。

打开系统属性面板(桌面上右键单击我的电脑”→“属性),点击高级系统设置,再点击环境变量,在系统变量中新建一个变量,变量名为M2_HOME,变量值为Maven的安装目录D:binapache-maven-3.0。点击确定,接着在系统变量中找到一个名为Path的变量,在变量值的末尾加上%M2_HOME%bin;,注意多个值之间需要有分号隔开,然后点击确定。至此,环境变量设置完成,现在打开一个新的cmd窗口(这里强调新的窗口是因为新的环境变量配置需要新的cmd窗口才能生效),运行如下命令检查Maven的安装情况:

C:UsersJuven Xu>echo %M2_HOME%

C:UsersJuven Xu>mvn -v

第一条命令echo %M2_HOME%用来检查环境变量M2_HOME是否指向了正确的Maven安装目录;而mvn –version执行了第一条Maven命令,以检查Windows是否能够找到正确的mvn执行脚本。

5.hudson及其相应插件的安装

下载hudson.war包和deploy.hpi插件:将hudson.warcopytomcat下的webapp下,重启tomcattomcat将自动把hudsonwar包解析为名为hudson的文件夹,自此hudson部署完毕,在浏览器地址栏输入http://localhost:8080/hudson,显示下图即可:

 

安装deploy.hpi插件:侧列表菜单Manage Hudson,然后选择第三项Manage Plugins,这个选项的功能是管理Hudson插件的,在插件管理中心点击Advanced,upload plugin 中上传刚才下载的插件,上传完毕后需要重启hudson才能完成安装(即重启tomcat)

这时在插件已安装项可以找到它:deploy-plugin,版本1.6版的;不过使用它,一个是在创建项目中启用它,一个是必须在项目build成功以后才行。

二、Mavenjava项目的编译、打包与发布

在这里先讲清楚一点,为什要写对web项目的编译、打包与发布,因为到了hudson下,这些工作任然是由maven去完成的。而且确实也是通过对maven的熟悉,使得我对web项目的目录结构和pom.xml文件的作用有了更为清晰的认识。

首先介绍在maven下对web项目的编译、打包过程,发布放到hudson中在写。

1.首先利用command line进入任意目录,输入

mvn archetype:create -DgroupId=com.mycompany.webapp -DartifactId=myweb -DarchetypeArtifactId=maven-archetype-webapp

注意上述命令一行输完再回车;

 

一定要build成功,即图中的“build successful”。

此时生成myweb文件目录,如图:

 

注意此在main目录下建一个名为java的目录,把自己的代码源文件复制进去;那么main目录下resourcewebappjava都有了;这三个缺一不可;另外图中标红的文件不仅一个不能少,而且各自位置一定不能错,错一个,就挂了。然后再command line下回到myweb 目录下,注意一定在这个目录下,因为pom.xml也在这个目录下,maven就是靠对pom.xml的解析进行工作,它相当于makemakefileantbuild.xml,否则maven会提示找不到pom文件。然后再输入mvn package打包,注意此时一定要生成target文件目录,否则hudson下的job文件夹下的workspace就是个空的,而且war包也在下面,没有就不能发布了,就又挂了。

 

2.分析pom文件

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.yourcompany</groupId>

  <artifactId>myproject</artifactId>

  <packaging>war</packaging>

  <version>1.0-SNAPSHOT</version>

  <name>myproject Maven Webapp</name>

  <url>http://maven.apache.org</url>

<build>

    <finalName>myproject</finalName>

</build>

 

modelVersion:此必需的元素说明了本POM所使用的模型版本。

groupId:本元素表示创建本项目的组织的唯一标识。groupId是一个项目的核心关键标识之一,它基于组织的完整属性域名。

artifactId:表示本项目的主要项目的唯一基本名。一个典型的由Maven生成的项目名称将会是如下的格式:<artifactId>-<version>.<extension> packaging:表示本项目所使用的包类型(JAR, WAR,EAR等)。

 version:表示项目的版本,Maven对于版本管理大有帮助,你会经常看到一个版本的SNAPSHOT快照),指示项目在开发中的不同状态。

name:项目的显示名称,常用于Maven生成的文档当中,并在构建过程中,为项目或其他的项目作为一种依赖使用。

注意:标红的两句是关键------一个指出打包的方式,因此上图中的web文件目录结构是关键,否则与打包方式不匹配,无论是在maven还是在hudson中都会出错的!第二个注意在hudson中构建任务build的方式就选SNAPSHOT选其他我不能保证一定不出问题!另外"groupId""artifactId"missing,一定要将"i"的小写改成大写;

 

三、Hudsonjava项目实现自动化的编译、打包与发布

1. Hudson的全局配置

点击左边列表菜单Manage Hudson,然后点击Configure System。可以对hudson进行系统配置,包括全局路径和变量设置等。如下图

 

注意;要修改hudson的主目录

hudson主目录一般默认为是

C:WINDOWSsystem32configsystemprofile.hudson

改成自己的如d:hudson;(记得重启hudsontomcat才行);

 

另外设置好MavenJDK

Maven这里的设置,就是取个名字,然后路径中指定maven2的解压路径。如下图所示


在这里设置时,我一般去掉Install automatically,而是直接指定MAVEN_HOME,我的maven是装在C:Program Filesapache-maven-2.2.1-binapache-maven-2.2.1(依个人设置)这里的,直接填入即可。

Jdk的设置是必须的,正确的设置也是去掉Install automatically选项,直接填写名称和   JAVA_HOME我的JAVA_HOME是安装在C:Javajdk1.6.0_02这里的,所以直接填入即可。填写好的JDK设置如下图:

其他的可以不设立了。

2.创建job

点击左侧列表菜单的New Job,出现如下界面:

注意:选择build a maven2 project 这一项,提示中明确指出take advantage of your

Pom files,故必须事前准备该文件;

 

填写Job name,然后选中Build a maven2 project,依个人项目设定,这里讲Maven2的工程,点击OK按钮。进入job的设置页面如下图所示:

 

 

Source Code Management:这里就是要结合版本控制工具的地方了,这里选用的是svn,所以设置如下:

Repository URL里填入你的仓库地址,svn有两种地址,一种是http://.....这样的,一种是svn://......的,我这里是用的第二种方式,所以填入svn://192.168.1.240/svn_py/test_yang

注意,这里是工程的根目录,也就是pom.xml所在的目录,可不要填写成svn://192.168.1.240/svn_py/test_yang/myproject等目录)

Build Triggers注意前面说了选SNAPSHOT

 

配置deploy插件:

在配置页面的Post-build Actions项下面会多出一项功能:Deploy war/ear to a container,在这里WAR/EAR file:就是填写hudson所打好的war包路径,之前说过,hudson打好的war包是放在这里的,所以这里就写%Hudson_home%/jobs/projecct_name/ workspace/ projecct_name/ target/(必须写成**/name.war)你的war文件的名称.warContainer选择你的Tomcat的版本。Manager user name:填写Tomcat的用户名,默认是admin, Manager password:填写Tomcat的密码,默认是空。Tomcat URL:填写http://localhost:8080/ok了,至此保存就可以了,

这里一定要注意WAR/EAR file:填写相对路径,不要写代表环境变量的相对路径,更不能写绝对路径(那会发生Ant GLOB pattern语法错误);写成如下即可:

 

或则写成路径**/*.war

最后还要注意hudson的时间与svn服务器的时间最好一致;

以上job配置完毕;

 

3.svn服务器上构建web文件目录

注意利用前面的maven构建的web项目文件目录,如下图:

 

svn服务器自己的文件目录下,也要构建这样的文件目录,这一点非常关键,否则hudson会提示诸如以下两种错误:

 

这种错误要么是没有pom文件,要么是pom文件位置不对,他的位置必须是在web项目文件根目录下一级;

 

提示这错误主要是web.xml文件没有或不能在正确位置,他的位置应该在WEB-INF文件夹中。

所以,在svn服务器上构建web项目文件目录结构非常关键!

 

最后,点击计划job,在hudson控制台就可以看见全过程,同时生成的war包,也部署到tomcat下的webapps文件夹下,可以通过http://localhost:8080/war包名称,进行web发布。

编译、打包、发布控制台结果如下:

 

发布结果如下:

 

附加:

自己的环境变量设置:

ClasspathProgram FilesJavajdk1.6.0_20bin

HUDSON_HOMED:HUDSON

JAVA_HOMEC:Program FilesJavajdk1.6.0_20

MAVEN_HOMEC:Program Filesapache-maven-3.0.3-binapache-maven-3.0.3

Path%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;.;C:Program FilesJavajdk1.6.0_20libtool.jar;D:Program Filessubversion-1.6.17bin;D:Program FilesTortoiseSVNbin;%ANT_HOME%/bin;%ANT_HOME%/lib;%MAVEN_HOME%bin

 

 

 

 

 

没图请下载附件

相关内容推荐