Jenknis+Ant+SVN+Tomact 持续构建

我们公司现在的开发环境是这样的,在本地开发完一个新的功能,测试无误直接上传到SVN;接下来就是将这次开发的功能从界面到后面理一遍,理清晰了就开始一点点的复制到服务器上的IDE中编译和发布。

上面的情况已经很繁琐了,下面这种情况会更糟糕。上线的系统,后期维护中会对很多功能进行完善,系统也会有周期性的测试。我们公司就是这样的,公司每个组都有测试人员,同时会请第三方公司测试。问题来了,在哪里做测试呢?每次都需要临时搭建一个测试环境,供测试人员测试。

步骤:

a.测试人员将提出的bug交给开发人员

b.开发人员根据测试文档(很多bug)完善代码

c.将完善好的代码在本地编译无误后,复制到测试环境的IDE上编译,重启服务器

d.将修改成果交给测试人员查看

e.测试人员验证通过后将修改过的代码复制到生产环境上编译,重启服务器

有多少bug,就需要将上面5个步骤循环多少次,直到所有bug解决,测试完成。最终我们想要达到的目的是测试完成后测试环境和生产环境的代码一致。往往会出现这样和那样的不一致,这就导致下次测试还会出现以前的bug,周而复始修改bug的开发人员不愿修改了,因为全是以前的问题(改一个bug需要改把本地、SVN、生产、测试代码都改了,不经意间就会漏掉一个地方)。测试人员的积极性也会降低,每次测试几百个bug,下次来还是这几百个。

出现这种情况的原因:

开发人员需要维护SVN、本地、生产环境、测试环境代码,不可以很好的兼顾,造成代码不一致。怎样去管理这些代码呢?——用集成框架应对这种情况

搭建框架——Jenknis+Ant+SVN+Tomact

第一步:开发人员只需要将自己修改的代码提交到SVN

第二步:在jenknis构建或者自动构建即可。

施工大大减少了劳动力,提高了开发效率。

注:

SVN中包含编译时需要的Build.xml文件

Jenknis集成了ANT,只需要相应的设置即可

开发工具

1、安装JDK(1.7版本以上,原因见最下面——问题详解)

环境变量:

Java_HOME:jdk1.7.0_67

path: “.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;”

检测是否安装成功:

命令:java –version

2、Tomact安装

环境变量:

新添:CATALINA_HOME :G:\tieServer\apache-tomcat-6.0.14

修改:path:;%CATALINA_HOME%\bin;

Tomact服务:

创建:

命令窗口:service.bat install

 将tomcat服务启动改为自动,并设置为启动状态

扩大Tomcat服务内存,而不是Tomcat内存(在这里Tomcat被注册为一种服务)

tomcat为我们提供了一个设置启动参数的窗体,双击tomcat_home/bin目录下的tomcat7w.exe,如图

1、添加参数

2、增大内存

Initial memory pool:初始化的Java虚拟机内存大小,

Maxinum memory pool:  Java虚拟机可使用的最大内存,

注:删除服务:

方式一:service.batremove(必须先保证服务安装时配置的Tomcat环境变量正常,否则无法删除)

方式二:sc deleteTomcat**(直接删除服务,没有限制条件)

3、安装Ant

环境变量:

ANT_HOME:  G:\ant\apache-ant-1.9.6

path:;%ANT_HOME%\bin;

检测:

ant –version

路径修改

Build.xml:

设置Tomact服务器路径

设置Ant安装路径

注:

解压后Ant包需要四个jar包,因为使用jdt进行编译,需要拷贝下面这些jar包到ant_home/lib

org.eclipse.jdt.compiler.tool_1.0.100.v_972_R35x.jar

org.eclipse.jdt.core_3.5.2.v_981_R35x.jar

org.eclipse.jdt.debug.ui_3.4.1.v20090811_r351.jar

jdtCompilerAdapter.jar

在org.eclipse.jdt.core_3.5.2.v_981_R35x.jar里面找到jdtCompilerAdapter.

否则会出现以下错误:

Class not found: org.eclipse.jdt.core.JDTCompilerAdapter

4、安装Jenknis

先修改端口,防止冲突:

C:\Program Files (x86)\Jenkins  修改:Jenkins.xml

   注:修改完成后重启jenknis服务

(1)新建项目

(2)项目配置

配置SVN地址

构建过程

(3)系统配置

配置JDK

配置Ant

(4)构建

编译结果:

构建顺序:

控制台输出:

<span style="font-size:18px;">Started by user gaoxiaoqing
Building in workspace C:\Program Files (x86)\Jenkins\jobs\ictrcp\workspace
Switching from https://win-b3mld9hafm6/svn/diaodu tohttps://WIN-B3MLD9HAFM6/svn/diaodu
Switching to https://WIN-B3MLD9HAFM6/svn/diaodu at revision '2015-08-26T18:27:13.948 +0800'
U        src\main\java\ICT\base\web\base\security\UserinfoAction.java
At revision 60
no revision recorded for https://WIN-B3MLD9HAFM6/svn/diaodu in the previous build
[workspace] $ cmd /c call C:\Windows\TEMP\hudson8302289325591623186.bat
C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace>net stop Tomcat7
Apache Tomcat 7.0 Tomcat7 服务正在停止.
Apache Tomcat 7.0 Tomcat7 服务已成功停止。
C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace>exit 0
[workspace] $ cmd.exe /C'"C:\software\apache-ant-1.9.6-bin\apache-ant-1.9.6\bin\ant.bat &&exit %%ERRORLEVEL%%"'
Buildfile: C:\Program Files (x86)\Jenkins\jobs\ictrcp\workspace\build.xml
clear:
   [delete] Deleting directory C:\ProgramFiles (x86)\Jenkins\jobs\ictrcp\workspace\build
   [delete] Deleting directory C:\ProgramFiles (x86)\Jenkins\jobs\ictrcp\workspace\dist
   [delete] Deleting:C:\software\apache-tomcat-7.0.63-windows-x64\apache-tomcat-7.0.63\webapps\ictrcp.war
   [delete] Deleting directory C:\software\apache-tomcat-7.0.63-windows-x64\apache-tomcat-7.0.63\webapps\ictrcp
init:
    [mkdir] Created dir: C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace\build\classes
    [mkdir] Created dir: C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace\dist
compile:
     [echo] begin compile...
    [javac] Compiling 1575 source filesto C:\Program Files (x86)\Jenkins\jobs\ictrcp\workspace\build\classes
    [javac] ----------
    [javac] 1. WARNING in C:\ProgramFiles (x86)\Jenkins\jobs\ictrcp\workspace\src\main\java\ICT\tools\excel\DispatchExcelExport.java(at
…………………………………………
\com\summary\project\web\summary\project\ProjectzlaqAction.java(at line 156)
    [javac]        List<LabTypeStatistics>list = JSONArray.toList(arr,LabTypeStatistics.class);
    [javac]                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    [javac] The method toList(JSONArray,Class) from the type JSONArray is deprecated
    [javac] ----------
    [javac] 182 problems (182 warnings)
     [copy] Copying 16 files toC:\Program Files (x86)\Jenkins\jobs\ictrcp\workspace\build\classes
     [echo] end compile...
war:
     [echo] begin war...
      [war] Building war: C:\ProgramFiles (x86)\Jenkins\jobs\ictrcp\workspace\dist\ictrcp.war
     [echo] end war...
deploy:
     [echo] begin deploy...
     [copy] Copying 1 file toC:\software\apache-tomcat-7.0.63-windows-x64\apache-tomcat-7.0.63\webapps
     [echo] end deploy...
BUILD SUCCESSFUL
Total time: 1 minute 53 seconds
[workspace] $ cmd /c call C:\Windows\TEMP\hudson5837850652773138903.bat
C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace>net start Tomcat7
Apache Tomcat 7.0 Tomcat7 服务正在启动 .
Apache Tomcat 7.0 Tomcat7 服务已经启动成功。
C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace>exit 0
Finished: SUCCESS</span>

问题详解

1、jdk版本需要提升到1.7以上

项目中使用到了Swicth(String)

在JDK1.6的版本中,switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放byte,short,char类型的也可以。是因为byte,short,shar可以自动提升(自动类型转换)为int,不能放long型和String型。

而在JDK1.7的版本中,switch中可以使用字串String。但仍不支持long型。

问题:即使JDK的版本为1.7,在myeclipse 也提示switch不能支持string。

应该是你的编译器版本还没改过来,在eclipse里面window->preferences->java,complier版本改成1.7就行了。如下图:

以前也使用过jenknis,现在想想当时只是简单的会用,其实很多东西都不是很清晰,只有自己去实践了,才会思考的多,遇到的问题也多,在错误中成长,你才会更深入。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-06 03:08:55

Jenknis+Ant+SVN+Tomact 持续构建的相关文章

个人环境搭建——搭建jenkins持续构建集成环境

---恢复内容开始--- 搭建jenkins持续构建集成环境  要搭建jenkins持续构建集成环境,首先要安装tomcat和JDK:   第一部分,基本说明:   敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要. 它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成.而每次的集成都是通过自动化的构建来验证,包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 持续集成的核心价值在于:

jenkins+ant+jmeter接口自动化测试(持续构建)

使用badboy录制脚本,到处到jmeter后进行接口自动化,后来想着 可不可以用自动化来跑脚本呢,不用jmeter的图形界面呢, 选择了ant来进行构建,最后想到了用Jenkins来进行持续构建接口测试. 上一篇讲到了badboy录制jmeter脚本后,可以在jmeter进行回访, 其实也可以直接在jmeter进行录制脚本,我们打开jmeter, 打开我们的代理服务器,然后设置 设置后呢,我们点击启动,这样就可以启动代理服务器了,  我录的是手机,所以呢,我在cmd 输入ipconfig获取地

ant+svn+tomcat实现自动构建

前段时间用做了一个简单的web api服务,在调试的过程中感觉到手动发布实在是效率低而且容易出错,于是花点时间搞了一下ant+svn+tomcat的自动构建,效果不错,今天拿出来分享一下. 准备工作 SVN服务器:VisualSVN-Server-2.5.8.msi,这windows下比较好用的一个svn服务端,安装和配置都很简单. Ant: Ant 1.7(我用的比较老的版本). Ant插件:svnant1.3(http://subclipse.tigris.org/svnant.html),

Jenkins+Ant+TestNG+Testlink自动化构建集成(完整版)

这段时间折腾自动化测试,之前都是在Eclipse工程里面手工执行自动化测试脚本,调用Testlink API执行测试用例,目前搭建Jenkins自动化构建测试的方式,实现持续构建,执行自动化测试. 硬件环境: 操作系统:Windows Server 2008 R2 Enterprise CPU:Intel(R) Xeon(R) CPU E5-2620 [email protected]  4核处理器 内存:8G 磁盘:1T 软件环境: jdk1.7.0_79 ant1.9.4 apache-to

Jenkins+Ant+TestNG+Testlink自动化构建集成

这段时间折腾自动化测试,之前都是在Eclipse工程里面手工执行自动化测试脚本,调用Testlink API执行测试用例,目前搭建Jenkins自动化构建测试的方式,实现持续构建,执行自动化测试. 硬件环境: 操作系统:Windows Server 2008 R2 Enterprise CPU:Intel(R) Xeon(R) CPU E5-2620 [email protected]  4核处理器 内存:8G 磁盘:1T 软件环境: jdk1.7.0_79 ant1.9.4 apache-to

谈谈对Jenkins持续构建的认识

通过多次搭建Jenkins持续构建环境,终于对Jenkins有了进一步认识,在此把所学所得和大家分享一下,希望可以帮助大家快速掌握Jenkins的核心思想. 在安装完Jenkins的setup.exe程序后,在浏览器会自动打开Jenkins的主页,通过Jenkins主页配置各种参数.  过程一:安装Jenkins的MsBuild Plugin插件,此插件用于支持MSBuild.exe的构建工作: 过程二:配置插件,告诉MsBuild Plugin插件用哪个版本的MSBuild.exe来构建,比如

Jmeter接口自动化测试 (四)(持续构建)

本文转载至http://www.cnblogs.com/chengtch/p/6145867.html  Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具.将这三者结合起来可以搭建一套webservice接口测试的持续构建环境.   1.安装JDK,配置java环境变量(略过)   2.安装Jmeter,这里用到的版本是2.12(安装过程略过) 3.安装 ANT 3.1 下载安装 下载地址 http://ant.apache.o

WEB接口测试之Jmeter接口测试自动化 (四)(持续构建)

转载http://www.cnblogs.com/chengtch/p/6145867.html  Jmeter是压力测试.接口测试工具,Ant是基于Java的构建工具,具有跨平台的作用,jenkins是持续集成工具.将这三者结合起来可以搭建一套webservice接口测试的持续构建环境.   1.安装JDK,配置java环境变量(略过)   2.安装Jmeter,这里用到的版本是2.12(安装过程略过) 3.安装 ANT 3.1 下载安装 下载地址 http://ant.apache.org/

Ant+jmeter+jenkins 持续集成设置

1.创建任务http://i2.51cto.com/images/blog/201802/24/a5a104abf5fba828adab8bda5194ab38.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=" alt="Ant+jmeter+jenkins 持续集成设