(2.2.6.4)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)构建

    编译结果:

 

 

构建顺序:

   

控制台输出:

[java]  view plain  copy
  1. <span style="font-size:18px;">Started by user gaoxiaoqing  
  2. Building in workspace C:\Program Files (x86)\Jenkins\jobs\ictrcp\workspace  
  3. Switching from https://win-b3mld9hafm6/svn/diaodu tohttps://WIN-B3MLD9HAFM6/svn/diaodu  
  4. Switching to https://WIN-B3MLD9HAFM6/svn/diaodu at revision '2015-08-26T18:27:13.948 +0800'  
  5. U        src\main\java\ICT\base\web\base\security\UserinfoAction.java  
  6. At revision 60  
  7. no revision recorded for https://WIN-B3MLD9HAFM6/svn/diaodu in the previous build  
  8. [workspace] $ cmd /c call C:\Windows\TEMP\hudson8302289325591623186.bat  
  9. C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace>net stop Tomcat7  
  10. Apache Tomcat 7.0 Tomcat7 服务正在停止.  
  11. Apache Tomcat 7.0 Tomcat7 服务已成功停止。  
  12. C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace>exit 0  
  13. [workspace] $ cmd.exe /C'"C:\software\apache-ant-1.9.6-bin\apache-ant-1.9.6\bin\ant.bat &&exit %%ERRORLEVEL%%"'  
  14. Buildfile: C:\Program Files (x86)\Jenkins\jobs\ictrcp\workspace\build.xml  
  15. clear:  
  16.    [delete] Deleting directory C:\ProgramFiles (x86)\Jenkins\jobs\ictrcp\workspace\build  
  17.    [delete] Deleting directory C:\ProgramFiles (x86)\Jenkins\jobs\ictrcp\workspace\dist  
  18.    [delete] Deleting:C:\software\apache-tomcat-7.0.63-windows-x64\apache-tomcat-7.0.63\webapps\ictrcp.war  
  19.    [delete] Deleting directory C:\software\apache-tomcat-7.0.63-windows-x64\apache-tomcat-7.0.63\webapps\ictrcp  
  20. init:  
  21.     [mkdir] Created dir: C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace\build\classes  
  22.     [mkdir] Created dir: C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace\dist  
  23. compile:  
  24.      [echo] begin compile...  
  25.     [javac] Compiling 1575 source filesto C:\Program Files (x86)\Jenkins\jobs\ictrcp\workspace\build\classes  
  26.     [javac] ----------  
  27.     [javac] 1. WARNING in C:\ProgramFiles (x86)\Jenkins\jobs\ictrcp\workspace\src\main\java\ICT\tools\excel\DispatchExcelExport.java(at  
  28. …………………………………………  
  29. \com\summary\project\web\summary\project\ProjectzlaqAction.java(at line 156)  
  30.     [javac]        List<LabTypeStatistics>list = JSONArray.toList(arr,LabTypeStatistics.class);  
  31.     [javac]                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  32.     [javac] The method toList(JSONArray,Class) from the type JSONArray is deprecated  
  33.     [javac] ----------  
  34.     [javac] 182 problems (182 warnings)  
  35.      [copy] Copying 16 files toC:\Program Files (x86)\Jenkins\jobs\ictrcp\workspace\build\classes  
  36.      [echo] end compile...  
  37. war:  
  38.      [echo] begin war...  
  39.       [war] Building war: C:\ProgramFiles (x86)\Jenkins\jobs\ictrcp\workspace\dist\ictrcp.war  
  40.      [echo] end war...  
  41. deploy:  
  42.      [echo] begin deploy...  
  43.      [copy] Copying 1 file toC:\software\apache-tomcat-7.0.63-windows-x64\apache-tomcat-7.0.63\webapps  
  44.      [echo] end deploy...  
  45. BUILD SUCCESSFUL  
  46. Total time: 1 minute 53 seconds  
  47. [workspace] $ cmd /c call C:\Windows\TEMP\hudson5837850652773138903.bat  
  48. C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace>net start Tomcat7  
  49. Apache Tomcat 7.0 Tomcat7 服务正在启动 .  
  50. Apache Tomcat 7.0 Tomcat7 服务已经启动成功。  
  51. C:\Program Files(x86)\Jenkins\jobs\ictrcp\workspace>exit 0  
  52. 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->javacomplier版本改成1.7就行了。如下图:

        

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值