本例实现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://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分钟自动构建一次:
相关推荐
Jupyter-Notebook
Jupyter-Notebook
高效甘特图模板下载-精心整理.zip
lstm Summary Framework: z = U>x, x u Uz Criteria for choosing U: • PCA: maximize projected variance • CCA: maximize projected correlation • FDA: maximize projected intraclass variance
OpenGL调试工具,适合图形开发者,包括视频开发,播放器开始以及游戏开发者。
全国行政区划shp最新图.zip
全国研究生招生与在校数据+国家线-最新.zip
Jupyter-Notebook
直播电商交流平台 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
《林黛玉进贾府》课本剧剧本
2000-2020年沪深A股上市公司融资约束程度SA指数-最新数据发布.zip
PPT模版资料,PPT模版资料
CPA注会考试最新教材资料-最新发布.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
内容概要:本文提供了一个完整的职工管理系统的C++源代码。通过面向对象的编程方法,实现了包括创建新职工、查询、增加、修改、删除、排序、统计以及存储和恢复职工数据在内的多个基本操作功能。该系统支持不同的用户角色(如管理员与老板),并通过菜单驱动方式让用户方便地进行相关操作。此外,还包括了错误检测机制,确保操作过程中的异常得到及时处理。 适合人群:有一定C++语言基础,特别是面向对象编程经验的程序员;企业管理人员和技术开发人员。 使用场景及目标:适用于中小型企业内部的人力资源管理部门或IT部门,用于维护员工基本信息数据库,提高工作效率。通过本项目的学习可以加深对链表、类和对象的理解。 阅读建议:建议先熟悉C++的基本语法和面向对象概念,再深入学习代码的具体实现细节。对于关键函数,比如exchange、creatilist等,应当重点关注并动手实践以加强理解。
Jupyter-Notebook
考研公共课历年真题集-最新发布.zip
Huawei-HKUST Joint Workshop on Theory for Future Wireless 15-16 September 2022 华为-香港科技大学未来无线理论联合研讨会 Speaker:Jingwen Tong
演出人员与观众疫情信息管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
《林黛玉进贾府》课本剧剧本.pdf