在软件开发过程中,团队成员需要经常性的进行集成,以便于更早的发现集成过程中的错误。每次集成都通过自动化的构建(编译、测试、发布)来发现集成过程中的错误。在软件开发团队中通常使用SVN作为源码管理工具(类似的有CVS),使用Ant作为自动构建工具(类似的如同Maven),可以使用Hudson作为持续集成(CI,Continuous integration)服务器。持续集成是世界级软件开发大师Martin Fowler(Thought Work公司首席科学家,著有《重构-改善既有代码设计》等软件开发巨著)所推荐的软件开发方式。
下面来按部就班的介绍使用Hudson进行持续集成的步骤。
【一】. 说明:本实例主要是介绍如何使用Hudson进行持续集成,并不对JDK、Tomcat、Ant、SVN等基础工具做详尽介绍。
【二】. 开发环境:
1. JDK版本:jdk1.7.0 [需配置JAVA_HOME变量]
2. Tomcat版本:apache-tomcat-6.0.35 [需配置CATALINA_HOME变量]
3. Ant版本:apache-ant-1.8.4 [需配置ANT_HOME变量]
4. SVN版本:Subversion 1.7
5. Hudson版本:Hudson 3.1.0
【三】. 搭建环境:
1. 下载Hudson的开发包,如:hudson-3.1.0.war。
2. 重命名为hudson.war,放置到Tomcat的webapps目录下面。启动Tomcat,可以看到hudson.war自动解压为hudson目录。
3. 进入\hudson\WEB-INF目录,打开web.xml,修改HUDSON_HOME的env-entry-value标签体,如下所示:
<env-entry>
<env-entry-name>HUDSON_HOME</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>F:\study\hudson</env-entry-value>
</env-entry>
[说明]. 路径F:\study\hudson将作为hudson的工作空间
4. 重启Tomcat:在浏览器中输入http://localhost:8080/hudson/,回车后将打开hudson的初始设置页面。
5. 选择安装hudson的核心特性,点击Finish后将进行在线安装。
[说明]:务必联网;此外还可以一同安装Hudson的支持插件,如对Ant,Maven,SVN,PMD等工具的支持,当然完全可以稍后安装
6. 安装完成后将进入如下界面:[附件:01.jpg]
7. 插件安装:点击左侧Manage Hudson导航,单击Manage Plugins链接,选择需要的特性进行安装。如下界面:[附件:07.jpg]
8. 系统配置:点击左侧Manage Hudson导航,单击Configure System链接,进入系统配置页面:[附件:02.jpg] 依次设置JDK、Ant、Maven、SVN的配置信息。
9. 在MyEclipse中创建一个web项目,如:test_tree,并且在项目根路径下配置Ant的构建文件build.xml。[附件:08.JPG]
10. 构建文件build.xml内容如下:
<?xml version = "1.0" encoding = "UTF-8"?>
<project name="test_tree" basedir="." default = "deploy">
<property name="src.dir" location="src"></property>
<property name="build.dir" location="build"></property>
<property name="build.src" location="${build.dir}/src"></property>
<property name="build.dist" location="${build.dir}/dist"></property>
<property name="web.root" location="WebRoot"></property>
<property name="web.WEB-INF" location="${web.root}/WEB-INF"></property>
<property name="web.lib" location="${web.WEB-INF}/lib"></property>
<property name="web.xml" location="${web.WEB-INF}/web.xml"></property>
<!--compile to /WEB-INF directory.-->
<property name="build.classes" location="${web.WEB-INF}/classes"></property>
<property environment = "env"></property>
<path id="compile.path">
<fileset dir="${web.lib}" includes="*.jar"></fileset>
<fileset dir = "${env.CATALINA_HOME}/lib" includes = "*.jar"></fileset>
</path>
<target name="clean">
<echo>clean ...</echo>
<delete dir="${build.dir}"></delete>
</target>
<target name="init" depends="clean">
<echo>init ...</echo>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.src}"/>
<mkdir dir="${build.classes}"/>
</target>
<target name="copy" depends="init">
<echo>copy ...</echo>
<copy todir="${build.src}">
<fileset dir="${src.dir}" includes="**/*.*"></fileset>
</copy>
</target>
<target name="compile" depends="copy">
<echo>compile ...</echo>
<javac srcdir="${build.src}" destdir="${build.classes}"
classpathref="compile.path"
includeantruntime="false">
<!--using UTF-8 encoding for Hudson-->
<compilerarg line="-encoding UTF-8"/>
</javac>
</target>
<target name="war" depends="compile">
<echo>war ...</echo>
<war destfile="${build.dist}/${ant.project.name}.war"
webxml="${web.xml}">
<fileset dir="${web.root}" includes="**/*.*"></fileset>
</war>
</target>
<target name="deploy" depends="war">
<echo>deploy ...</echo>
<copy todir="${env.CATALINA_HOME}/webapps">
<fileset dir="${build.dist}" includes="*.war"></fileset>
</copy>
</target>
</project>
熟悉Ant的童鞋,可能注意到了:一定需要配置正确的Tomcat的CATALINA_HOME环境变量。
11. 将项目test_tree上传至SVN路径:不熟悉SVN的童鞋要努力了!
https://localhost:8443/svn/CRM/trunk/code/test_tree
12. 单击hudson页面的左侧导航New Job,打开页面如下所示:[附件:09.jpg]
13. 如上填写后,进入如下页面:[附件:10.jpg]
14. 填写SVN路径,单击链接enter credential,在新打开的页面中输入SVN账号,OK即可。[附件:11.jpg]
15. 然后选择已配置的Ant名称:[附件:12.jpg/13.jpg]
16. 设置成功后,点击左上角Hudson的Logo进入首页:[附件:14.jpg]
17. 点击最右边的按钮,进行项目构建:[附件:15.jpg]
18. 构建完成后,点击Console查看构建输出:Console Output[附件:16.jpg]
19. 进入Tomcat的webapps目录,可以看到已经test_tree.war已经存在了!
【四】. 如上所述,是最为简单的使用方式。事实上,可以使用Ant/Maven进行自动化的测试、并生成测试报告;使用Hudson的FindBug、CheckStyle、PMD、Metrics等插件可以进行代码缺陷、代码风格、代码圈复杂度(CC)的自动输出。
【五】. 如上所述,在大型软件的开发过程中,使用Hudson进行持续集成,可以尽早的发现集成过程中的错误,提高项目开发的质量,加快项目开发的进度。不是很酷,而是很爽!会偷懒的程序员是最好的程序员!haha ...
分享到:
相关推荐
对于想要入门持续集成的读者,这本书提供了一个系统的学习框架。在理解了持续集成的基础理论和实践步骤后,再通过实际操作熟练掌握各种测试工具的使用,将有助于读者更好地应用持续集成于自己的开发工作中。
持续集成从“配置管理”、“构建”、“测试”、“部署及发布”及“团队习惯”5个纬度考察其成熟度,每个维度都有5个级别,分别是“入门”、“新手”、“中等”、“进阶”和“疯狂”。目前在各个维度上,行业的平均...
【标题】:“持续集成工具Hudson入门介绍(结合Ant)” 在软件开发过程中,持续集成是一种重要的实践,它强调开发者频繁地将代码集成到主分支,以便尽早发现并解决潜在问题。Hudson作为一款开源的持续集成服务器,...
《Jenkins持续集成从入门到精通》是一本深入解析Jenkins这一强大持续集成工具的教程。Jenkins,作为开源的持续集成服务器,被广泛应用于软件开发的自动化构建、测试和部署,极大地提升了开发效率和软件质量。以下是...
Travis CI 是一款广泛使用的持续集成工具,尤其在开源项目中极为流行。它与GitHub紧密集成,可以帮助开发者自动化测试和构建代码,确保每次代码提交后都能得到及时的反馈,从而提高开发效率和软件质量。 ## 一、...
持续集成(CI)是敏捷开发中非常重要的实践,它通过频繁地将代码集成到主干中,可以尽早发现集成错误,并减少集成问题,从而提升软件质量。持续集成的目的在于让产品快速迭代,持续提供更新,同时保证代码的质量。 ...
在软件开发中,持续集成(Continuous Integration,简称CI)是一种实践,开发者频繁地将他们的更改合并到共享的主分支,通常每次提交都会触发自动构建和测试。这有助于早期发现并解决问题,提高开发效率和产品质量。...
在IT行业中,持续集成(Continuous Integration,简称CI)是一种软件开发实践,旨在通过频繁地将代码集成到共享存储库来减少集成错误。它强调开发人员每天至少集成一次代码,并且每次集成都通过自动化构建和测试来...
1. Jenkins:持续集成工具,自动构建、测试和部署项目。 2. JUnit:Java单元测试框架。 3. Selenium:Web应用自动化测试工具。 十、部署与运维 1. Docker:容器化技术,简化应用部署。 2. Kubernetes:容器编排系统...
Docker是一个开源的引擎,可以轻松的为任何应用创建一...自动化测试和持续集成、发布; 在服务型环境中部署和调整数据库或其他的后台应用; 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
持续集成工具Jenkins书籍(2本)目录知识点整理(思维导图加图).rar 版本全程自动化测试需要借助持续集成工具来实现,根据如下Jenkins书籍(2本)整理: 2019年《Jenkins 2.x 实践指南》 2019年《Jenkins 2权威...
9. **集成与API**:讲解Together与其他开发工具(如IDEs、持续集成服务器等)的集成方式,以及如何利用API扩展其功能。 10. **安全与权限**:介绍用户管理和权限设置,确保数据安全和团队协作的有序性。 11. **...
以上内容详细介绍了VisualSVN Server和Jenkins的安装、配置以及使用方法,对于想要理解并应用持续集成实践的开发人员来说,这些步骤是入门和实践持续集成不可或缺的基础知识。掌握这些知识,可以在日常的软件开发和...
此外,书中还会涉及GitHub与其他工具或服务的集成,例如持续集成服务、自动化测试和项目管理工具JIRA的结合使用。这些集成能够提升开发流程的效率和质量。对于企业用户,书中还将探讨如何将GitHub引入到企业内部开发...