Jenkins+SVN+Ant在Linux环境下自动完成版本的增量更新与编译

Jenkins+SVN+AntLinux环境下自动完成版本的增量更新与编译

  1. 配置工具

Jenkinsjenkins.war

Antapache-ant-1.8.2

SVN

  1. 配置步骤

Ant配置

ant下载后应该是一个压缩包,解压后,解压后所在路径这里用 ${ant_path} 代替。打开系统环境变量,新建ANT_HOME变量,值为 ${ant_path} 。然后再在系统变量path中加入如下内容:

vi /etc/profile

export ANT_HOME=/usr/local/apache-ant-1.8.2

source /etc/profile  (使变量生效)

至此,ant配置完毕

Jenkins的配置:

直接将下载的jenkins.war包放到tomcatwebapp下即可

例如本次测试目录:/usr/local/tomcat/apache-tomcat-7.0.64/webapps  (与ROOT在同一目录)

访问url192.168.1.120:8080/Jenkins 即可

注:192.168.1.120是本次测试机Ip8080tomcat端口

访问后即可打开jenkins的首页

Svn不在此做说明,使用公司现有svn: https://qmc.f3322.net/ 即可

  1. 操作步骤

打开jenkins首页面进行设置

系统管理----->系统设置

主要设置一下几项

 设置jdk别名和JAVA_HOME(可根据环境变量文件内容填写)

设置ant别名和ANT_HOME

由于我们用的是SVN,所以这里填写SVN版本即可,具体路径在构建项目的时候填写

接下来我们构建项目,如图,构建一个自由风格的项目并给任务命名

加入avn路径,填完此路径后会让填写svn的用户名和密码

在“构建”选择ant,如果执行上面所填写的svn路径下的默认build.cml,不用选择高级,如果要执行的是其他的ant脚本文件,需点“高级”然后在“Build File”内填写所要执行的脚本文件名

SAVE后完成项目构建

返回首页即可看到所构建的项目

如果ant脚本没有问题,构建自会成功

另外可以在构建的时候实时查看构建详情

 

 

 

 

 

 

 

以下是UAT下所用的ant脚本(buildforUAT1.xml)

<project name="qmc" default="all">

<target name="all" depends="clean,init,compile,copy,war,deploy"/>

<!-- init -->

<property name="tomcat.home" value="/opt/tomcat6"/>  

<property name="tomcat.webapps.dir" value="${tomcat.home}/webapps"/>

<property name="tomcat-lib" value="${tomcat.home}/lib"/>

<property name="workdir" value="/opt/"/> 

<property name="deploy-web" value="${workdir}/ps2"/>   

<property name="deploy-replace" value="${workdir}/classes"/>

<property name="src" value="src"/>

<property name="yeepay" value="yeepay"/>

<property name="p2p_basic" value="p2p_basic"/>

<property name="WEB-INF" value="WEB-INF"/>

<property name="dist" value="target"/>

<property name="warDest" value="wardest"/>

<property name="classDest" value="class"/>

<property name="warName" value="qmc.war"/>

<!-- replace -->

<property name="replaceFiles" value="../../replaceFiles"/>

<property name="compressed" value="../../compressed"/>

<!-- location -->

<!-- jar  -->

<path id="build-classpath">

<fileset dir="lib">

<include name="*.jar"/>

</fileset>

<fileset dir="${tomcat-lib}">

<include name="*.jar"/>

</fileset>

</path>

<!-- clean -->

<target name="clean">

<delete dir="${dist}"/>

</target>

<!--  bulid -->

<target name="init">

<echo>####build1...</echo>

<mkdir dir="${dist}"/>

<mkdir dir="${dist}/${warDest}"/>

<mkdir dir="${dist}/${classDest}"/>

<mkdir dir="${dist}/findbugs"/>

<echo>####build2</echo>

</target>

<target name="compile" depends="init">

<echo>####build3...</echo>

<javac srcdir="${src};${p2p_basic};${yeepay}" destdir="${dist}/${classDest}" target="1.6" classpathref="build-classpath" includeantruntime="no" deprecation="fasle" optimize="on" nowarn="true"></javac>

<echo>####build4</echo>

</target>

<!-- copy -->

<target name="copy" depends="compile">

<echo>####scanning</echo>

<!-- copy -->

<copy todir="${dist}/${classDest}">

<fileset dir="${src}">

<exclude name="**/*.java"/>

</fileset>

</copy>

<copy todir="${dist}/${classDest}" includeEmptyDirs="yes">

<fileset dir="${p2p_basic}">

<patternset>

<include name="**/*.conf"/>

<include name="**/*.properties"/>

<include name="**/*.xml"/>

</patternset>

</fileset>

</copy>

<copy todir="${dist}/${classDest}">

<fileset dir="${yeepay}">

<exclude name="com*/**"/>

</fileset>

</copy>

<copy todir="${dist}/${warDest}">

<fileset dir="WebRoot">

<exclude name="${WEB-INF}/classes/"/>

<exclude name="${WEB-INF}/lib/"/>

<exclude name="upload/"/>

</fileset>

</copy>

<echo>####over!</echo>

</target>

<target name="war" depends="copy">

<echo>####${warName}</echo>

<war destfile="${dist}/${warName}" webxml="WebRoot/${WEB-INF}/web.xml">

<fileset dir="${dist}/${warDest}"/>

<!-- <lib dir="web/${WEB-INF}/lib"/> -->

<classes dir="${dist}/${classDest}"/>

</war>

<echo>####${warName}</echo>

</target>

<target name="deploy">

<echo>####start...</echo>

<copy todir="${dist}/${classDest}" overwrite="true">

<fileset dir="${deploy-replace}">

<patternset>

<include name="*.conf"/>

<include name="*.properties"/>

<include name="*.pfx"/>

<include name="*.xml"/>

</patternset>

</fileset>

</copy>

<delete includeEmptyDirs="true">

<fileset dir="${deploy-web}">

<exclude name="${WEB-INF}/"/>

<exclude name="upload/"/>

</fileset>

</delete>

<delete includeEmptyDirs="true">

<fileset dir="${deploy-web}/${WEB-INF}">

<exclude name="lib/"/>

</fileset>

</delete>

<copy todir="${deploy-web}">

<fileset dir="${dist}/${warDest}">

<exclude name="${WEB-INF}/"/>

<exclude name="upload/"/>

</fileset>

</copy>

<mkdir dir="${deploy-web}/${WEB-INF}/classes"/>

<copy todir="${deploy-web}/${WEB-INF}/classes">

<fileset dir="${dist}/${classDest}/"/>

</copy>

<copy todir="${deploy-web}/${WEB-INF}">

<fileset dir="${dist}/${warDest}/${WEB-INF}">

<exclude name="classes/"/>

<exclude name="lib/"/>

</fileset>

</copy>

<copy todir="${deploy-web}/${WEB-INF}/classes/com/esoft/yeepay/sign" overwrite="true">

<fileset dir="${deploy-replace}">

<patternset>

<include name="*.class"/>

</patternset>

</fileset>

</copy>

<echo>####finish === ${deploy-web}</echo>

</target>

</project>


 

 

 


版权声明:本文为weixin_34711818原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。