`

Hudson+Ant+SVN+Tomcat实现快速构建(一)

 
阅读更多

本例实现Hudson+Ant+SVN+Tomcat实现快速构建:

基本流程:

1、工具安装

2、新建基本WEB项目,编制Ant脚本,可用脚本打出war包

3、提交代码到SVN

4、Hudson配置用插件安装,新建任务并实现自动从SVN拉最新代码找成war包,拷贝包到tomcat的Webapps目录

下面具体步骤:

1、工具安装列出以下版本,具体安装略

Java:                   jdk1.7.0_17

Ant :                    apache-ant-1.9.4

Tomcat:       apache-tomcat-6.0.37

Hudson:

网址:http://hudson-ci.org/

具体下载地址:http://www.eclipse.org/downloads/download.php?file=/hudson/war/hudson-3.3.3.war

我使用的是hudson-3.3.3这一版本,直接从网站下载war包,放到tomcat的webapps目录,启动tomcat访问地址:http://localhost:8080/hudson-3.3.3,能访问即OKl

SVN: 服务器   VisualSVN-Server-3.5.4-win32.msi

   客户端   TortoiseSVN-1.7

2、新建基本WEB项目,编制Ant脚本,可用脚本打出war包,具体包见附件DEMO.zip,这里只列出项目的ant文件

 

<?xml version="1.0" encoding="UTF-8" ?>
<project name ="test" default ="war" basedir =".">
    <property  name ="classes" value ="${basedir}/build/classes"/>
    <property  name ="build" value ="${basedir}/build"/>
    <property  name ="lib" value ="${basedir}/WebContent/WEB-INF/lib"/>
    <target name ="clean">
        <delete dir ="${build}"/>
    </target>

     <target name ="compile"  depends ="clean">
        <mkdir dir ="${classes}"/>
        <javac srcdir ="${basedir}/src"  destdir ="${classes}"/>
     </target>

     <target name ="war" depends ="compile">
        <war destfile ="${build}/DEMO.war"  webxml ="${basedir}/WebContent/WEB-INF/web.xml">
                 <fileset dir ="${basedir}/WebContent"  includes ="**/*.jsp"/>
                 <lib dir ="${lib}"/>
                 <classes dir ="${classes}"/>
        </war>
     	<!--<copy todir="D:\Java\apache-tomcat-6.0.37\webapps\" file="${build}/DEMO.war">
     	</copy>-->
     </target>
</project>

 试运行ant脚本,在项目子目录build下找到DEMO.war包,可复制war包到tomcat的webapps目录看项目能否访问

3、提交代码到SVN

将项目DEMO的代码提交到SVN具体路径:https://127.0.0.1/svn/MYREP/DEMO

这里我的SVN服务器和客户端都是安装在本机的,在SVN服务器要新建用户并授予项目的读写权限,我新建的是ADMIN,密码请记住,配置完成后自己可以使用SVN客户端取一下,确认一下读取代码没问题,如下图:



 

4、Hudson配置用插件安装,新建任务并实现自动从SVN拉最新代码找成war包,拷贝包到tomcat的Webapps目录

将hudson的war包部署到tomcat下启动访问http://localhost:8080/hudson-3.3.3,会提示安装必要的插件

这里因为我要用到SVN和tomcat自动部署,所以需要安装下图红色标记的插件



 安装插件要费点时间,具体时间我没管,可能要比较久。

安装完插件后,进入系统管理下的系统设置菜单如下图:



 

具体设置如下:

 

 

 

 邮箱通知用到的时候再设置。

保存后设置完成。

下面新建任务,任务名称设置为testdemo

hudson默认目录为.hudson,即具体为路径为C:\Users\{用户名}\.hudson

任务建新完成后任务路径为:C:\Users\{用户名}\.hudson\jobs\testdemo,hudson到时候从SVN拉代码会在该目录下创建workspace目录

继续任务的具体配置



 

 

 

配置完成后save保存,返回后点立即构建,成功后截图如下,如果成功将会在tomcat的webapps目录产生DEMO.war包

 



 

 

 注意,在任务设置中的Context path设置很关键,如果设置错误在构建时会报以下错误:

ERROR: Publisher hudson.plugins.deploy.DeployPublisher aborted due to exception
org.codehaus.cargo.container.ContainerException: Failed to deploy [C:\Users\lweifeng\.hudson\jobs\testdemo\workspace\build\DEMO.war]
	at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.deploy(AbstractTomcatManagerDeployer.java:107)
	at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:185)
	at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:64)
	at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:93)
	at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:77)
	at hudson.FilePath.act(FilePath.java:793)
	at hudson.FilePath.act(FilePath.java:775)
	at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:77)
	at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:47)
	at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:51)
	at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:736)
	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:714)
	at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:690)
	at hudson.model.Build$RunnerImpl.post2(Build.java:163)
	at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:652)
	at hudson.model.Run.run(Run.java:1519)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
	at hudson.model.ResourceController.execute(ResourceController.java:82)
	at hudson.model.Executor.run(Executor.java:137)
Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Failed to deploy application at context path /D:/Java/apache-tomcat-6.0.37/webapps

 

这个错误是tomcat报出来的,很容易搞得不知道如何解决,其实只是配置引起的。

当然将war包拷贝到tomcat目录,使用ant的copy一样可以实现,如我在ant的文件里面注释的一段。

<!--<copy todir="D:\Java\apache-tomcat-6.0.37\webapps\" file="${build}/DEMO.war">
     	</copy>-->

 但ant 拷贝对本机开发和部署还行,如果跨服务器部署就不行了。

另外一种处理方法是通过调用批处理,  构建设置-build选项-Execute Windows batch command,使用批处理命令直接移war包。不过这样的缺点在于,移动失败的时候,会显示批处理命令执行成功,hudson是不会报错的,需要人工检查。

 

补充:上面我们是手工点“立即构建”完成部署的,hudson支持设置指定时间自动构建

 

配置自动构建的计划,假设我们想让项目中每天12点和晚上8点自动构建一次,只需要在Build Triggers中选择

Build periodically,并在Schedule中输入 0 12,20 * * *。
注: Schedule的配置规则是有5个空格隔开的字符组成,从左到右分别代表:分 时 天 月 年。*代表所有,

0 12,20 * * * 表示在任何年任何月的任何天的12和20点的0分 进行构建
如下图设置为每5分钟自动构建一次:

 

 

 

  • 大小: 69.8 KB
  • 大小: 101.3 KB
  • 大小: 56.9 KB
  • 大小: 91.5 KB
  • 大小: 82.2 KB
  • 大小: 43.5 KB
  • 大小: 34.5 KB
  • 大小: 60.5 KB
  • 大小: 97 KB
  • 大小: 78.8 KB
  • 大小: 101.5 KB
  • 大小: 50.1 KB
  • 大小: 56 KB
分享到:
评论

相关推荐

    hudson自动构建文档

    Hudson拥有丰富的插件生态系统,可以支持各种版本控制系统(如Git、SVN)、构建工具(如Maven、Ant)、测试框架等。根据项目需求,选择合适的插件可以增强Hudson的功能。 8. **安全与权限管理** 确保Hudson的安全...

    hudson每日构建

    Hudson就是这样一个平台,它提供了丰富的插件支持,能够与Subversion这样的版本控制系统、Maven和Ant等构建工具无缝集成,简化了整个CI流程。 Subversion,通常简称为SVN,是一种版本控制系统,用于跟踪文件和目录...

    hudson学习教程Hudson安装与使用,Hudson配置,Hudson插件

    - 配置项目源代码仓库(如Git、SVN)、构建触发器(定时、提交触发等)、构建脚本(如Ant、Maven)。 4. **构建与测试** - 设置构建步骤,包括编译源码、执行单元测试、打包等。 - 配置邮件通知,当构建失败时...

    hudson自动化部署配置

    ### Hudson自动化部署配置...通过以上步骤,我们可以有效地利用Hudson实现自动化构建、测试和部署,显著提升开发效率和软件质量。同时,Hudson的高度可扩展性和丰富的插件生态使其成为CI/CD领域不可或缺的工具之一。

    Hudson平台搭建及使用

    【Hudson平台搭建及使用详解】 ...Hudson不仅提供了基本的构建和测试功能,还可以与其他工具集成,如Git、Jenkins、Ant等,实现更复杂的自动化流程。对于大型开发团队而言,Hudson是管理和监控项目进展的有力工具。

    Hudson持续集成服务器的安装配置和使用

    它可以集成多种源代码管理工具(如Git、Subversion等)、构建工具(如Ant、Maven等)以及测试框架(如JUnit、TestNG等),从而实现对软件开发过程的全面支持。 ### 二、环境准备 为了顺利安装和配置Hudson,首先...

    hudson使用手册

    Hudson作为一款持续集成工具,它的出现极大地简化了软件开发团队中的构建和测试流程。持续集成(Continuous Integration, CI)是一种软件开发实践,旨在通过频繁地(一天多次)将代码合并到主干中来提高代码的质量。...

    windows2003中SVN服务器异机同步、自动部署Java项目全流程

    - 为了实现自动部署,需要在服务器上设置一个脚本或计划任务,该任务定期检查SVN仓库的更新并执行Ant构建。可以使用Windows的Task Scheduler创建一个定时任务,调用命令行执行Ant的`build.xml`文件。 - 配置Ant的`...

    如何搭建CI环境,持续构建环境搭建

    本指南将详细介绍如何搭建一个基于CI的环境,涉及以下关键技术:Hudson、Archiva、Ant、Maven、Tomcat和SVN。 **1. 需求分析** 在开始搭建之前,理解CI环境的核心需求是关键。这些包括自动化的构建、测试、部署和...

    Hudson 相关文档

    - 实现快速构建:自动检测源代码的变更,并立即触发构建过程。 - 提供实时反馈:通过邮件、RSS 或即时消息通知构建结果,尤其是失败情况。 - 支持分布式构建:利用多台计算机的资源,加速构建和测试速度。 - 管理...

    hudson配置

    - Apache Tomcat:作为Hudson的容器,Hudson作为一个WAR文件可以部署在Tomcat等Servlet容器中运行。 - Hudson WAR文件:Hudson的核心部分。 2. **设置环境变量:** - `ANT_HOME`:指向Apache Ant的安装目录。 -...

    使用Hudson进行持续集成.doc

    总之,Hudson作为一款强大的持续集成工具,能够帮助开发团队实现自动化构建、测试和部署,提高软件开发的效率和质量。通过正确配置和使用Hudson,可以确保项目的持续集成流程顺畅,并及时发现和修复潜在问题。

    hudson安装及使用手册

    Hudson支持多种版本控制系统(如Git、SVN),构建工具(如Maven、Ant)以及测试框架,使得软件开发过程中的各个环节能够紧密集成。 **二、Linux上安装Hudson的步骤** 1. **安装Java环境**:Hudson依赖于Java运行时...

    使用Hudson进行持续集成资料总结

    Hudson是一款开源的持续集成工具,它用于自动化各种软件开发任务,包括构建、测试和部署。在本文中,我们将深入探讨Hudson的基础配置及其在持续集成中的应用。 首先,了解持续集成(CI)的重要性是至关重要的。持续...

    ant帮助文档ant帮助文档ant帮助文档

    - Ant常与持续集成工具如Jenkins、Hudson等结合使用,实现自动构建和测试。 14. **版本控制集成(Version Control Integration)** - Ant可以与版本控制系统如Git、SVN等集成,实现版本控制相关的操作。 总之,...

Global site tag (gtag.js) - Google Analytics