持续集成

持续集成,持续交付,持续部署。

持续集成:对源代码进行自动化编译、测试、代码检查,以及打包程序、部署(发布)到应用服务器上。主要使用jenkins。

通过主干开发分支发布进行,首先从主干上拉取代码到本地进行开发,代码修改完成定点将代码合入到主干后进行编译扫描,跑自动化测试任务。自动化测试包括单元测试、集成测试、系统测试、验收测试、性能测试等。

Jenkins:

配置项目配置任务流配置任务。

主要在于任务的管理,有拉取代码任务,扫描任务,编译等。可通过使用ant脚本或者shell脚本或者其他脚本实现各功能。

 Ant脚本是一个基于开放的操作系统构建和部署的工具,用xml的文档来编写,就如linux下的shell脚本,windows下的cmd命令。通过一个xml文件来制定一系列文件的创建删除任务、编译任务、运行任务、测试任务、打包任务等。我们可以通过ant指令执行这个xml脚本,来批处理这些任务,这样就可以实现“一键”完成编码后的编译、运行、测试、打包导出等工作,使我们可以更加专注于代码的编写与质量。

ps:ant的使用和学习:https://www.w3cschool.cn/ant 

<?xml version="1.0"?>
   <project name="pro"  default="info2">
  <copy file="C:/Users/user/Desktop/startup.txt" tofile="C:/Users/user/Desktop/copy.txt"/> 拷贝文件
    <path id="build.classpath">
       <fileset dir="lib">
          <include name="*.jar"/>
       </fileset>
       <pathelement path="${build.dir}"/>
    </path>
<target name="clean"> 
<delete dir="build"/>
</target>
<target name="compile" depends="clean">  
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes" encoding="UTF-8" includes="com/**">
    <classpath refid="build.classpath" />
    </javac>
</target>                 使用ant编译java项目。将build.xml存放于项目下,跑命令跑该脚本  ant -buildfile xml路径
   <property name="sitename" value="www.xxxxx.com"/>   属性相当于参数定义
   <target name="info2" depends="info1">    可包含多个target,每个target就是一个任务,target中有name、depends、description、if、unless
      <echo>测试</echo>
   </target>
   <target name="info1" depends="info">
      <echo>扫描</echo>
   </target>
   <target name="info"  >
      <echo>编译  ${sitename} ${ant.project.name}</echo>  参数的使用 ant的预定义属性也可以使用。
   </target>

</project>

java用来运行一个.class文件   java -buildfile xxx.java

javadoc用来生成api文档

jar用来生成jar包

javac用来把.java文件编译为.class文件   java  xxx

 初始化、编译、打包

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant_web_hello" default="jar" >
    <target name="init">
    <mkdir dir="build/classes"/>
    </target>
    <!-- 定义编译时的classpath -->
    <path id="compile.path">
        <fileset dir="webContent/WEB-INF/lib" includes="*.lib">
        </fileset>
        
    </path>

 <target name="compile"  description="编译源文件" depends="init" >
        <javac srcdir="src" destdir="build/classes" source="1.5" target="1.5">
            <classpath refid="compile.path" />
        </javac>
     <echo>编译完成!</echo>
    </target>


    <target name="jar" depends="compile">
       <jar destfile="webContent/WEB-INF/lib/util.jar" >
       </jar>
        <echo>打包完成!</echo>
    </target>     

    <target name="clean" description="清理" depends="jar">
        <delete dir="build/classes" />
        <echo>清理完成!</echo>
    </target>

</project>

 

Jenkins配置: 使用的是java语言写的代码,代码开发时使用jdk1.8版本,服务器使用1.7版本,需要更新jdk版本。下载安装jdk,在环境变量中配置环境变量。 环境变量配置时找到jdk地址,之后设置参数进行修改。 在cmd命令中确认java的版本,java -version 在出现java.lang.ArrayIndexOutOfBoundsException: 5 问题时,是参数有问题,

<path id="build.classpath">   <fileset dir="lib">      <include name="*.jar"/>   </fileset>   <pathelement path="${build.dir}"/></path>

 

Bamboo

以上是jenkins的简单描述,一直看到过bamboo这个jira的插件,但是不知道是干嘛的,今天去翻了一下原来也是持续集成的,一款持续集成构建服务器软件,但是是非开源的。

windows上支持:MSBuild, NAnt, Visual Studio   

Java平台: Ant, Maven 1, Maven 2, Maven 3    包括另外一些编译脚本 custom script, command line, Bash

在通知方面支持XMPP, Google Talk, E-mail, RSS, Remote API 协议等

可以和以下平台集成:   IntelliJ IDEA, Eclipse, Visual Studio     FishEye, Crowd, JIRA, Clover

在SCM方面支持常见的主流版控工具,如CVS,Subversion,Git,CC等。

 

posted @ 2019-05-13 16:05  lovebear  阅读(234)  评论(0编辑  收藏  举报