一、jenkins配置
在jenkins里面配置好ant版本
构建完成后执行shell脚本重启tomcat
二、build.xml配置
- 从官网http://ant.apache.org/bindownload.cgi获取最新的tar包。
- 上传至服务器目录,解压tar包即可
tar –xvf apache-ant-1.9.2-bin.tar
**注:**使用javacc编译存在一些条件无法编译的情况,可以使用eclipse的编译器jdt进行编译。找到
jdtCompilerAdapter.jar
org.eclipse.jdt.compiler.tool_1.0.100.v_B79_R37x.jar
org.eclipse.jdt.core_3.7.3.v20120119-1537.jar
org.eclipse.jdt.debug.ui_3.6.1.v20111006_r372.jar
上传至ant目录的lib下。在build.xml申明下使用jdt即可
<property name="build.compiler"value="org.eclipse.jdt.core.JDTCompilerAdapter">
1<?xml version="1.0" encoding="UTF-8"?> 2<project name="testApp" default="deploy" basedir="."> 3 <property environment="env" /> 4 <property name="webapp.name" value="testApp" /> 5 <property name="catalina.home" value="/home/testApp/tomcat8087" /> 6 <property name="dist.dir" value="${basedir}/dist" /> 7 <property name="ant.dir" value="/usr/local/apache-ant-1.9.9" /> 8 <property name="webRoot.dir" value="${basedir}/WebRoot" /> 9 <property name="src.dir" value="${basedir}/src" /> 10 <property name="config.dir" value="${basedir}/conf" /> 11 <property name="lib.dir" value="${webRoot.dir}/WEB-INF/lib" /> 12 <property name="build.dir" value="${basedir}/build" /> 13 <!-- 使用eclipse jdt进行编译,而不使用JDK编译 --> 14 <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" /> 15 16 <!-- 初始化classpath --> 17 <path id="project.classpath"> 18 <fileset dir="${lib.dir}"> 19 <include name="**/*.jar" /> 20 </fileset> 21 <!-- 添加tomcat类路径 --> 22 <fileset dir="${catalina.home}/lib"> 23 <include name="*.jar" /> 24 </fileset> 25 <!-- ant lib包 --> 26 <fileset dir="${ant.dir}"> 27 <include name="**/*.jar" /> 28 </fileset> 29 </path> 30 31 <!-- get the source compile classpath in a printable form --> 32 <pathconvert pathsep="${line.separator}| |-- " 33 property="echo.path.compile" 34 refid="project.classpath"> 35 </pathconvert> 36 37 <!-- show classpath jars --> 38 <target name="print_classpath"> 39 <echo message="|-- compile classpath"/> 40 <echo message="| |"/> 41 <echo message="| |-- ${echo.path.compile}"/> 42 </target> 43 44 45 <!-- 删除之前的目录结构 --> 46 <target name="clear" description="清理旧文件"> 47 <delete dir="${build.dir}" /> 48 <delete dir="${dist.dir}" /> 49 <delete file="${catalina.home}/webapps/${webapp.name}.war" /> 50 <delete dir="${catalina.home}/webapps/${webapp.name}" /> 51 </target> 52 53 <!-- 创建目录结构 --> 54 <target name="init" depends="clear" description="创建初始化目录结构"> 55 <mkdir dir="${build.dir}/classes" /> 56 <mkdir dir="${dist.dir}" /> 57 </target> 58 59 <!-- 编译java --> 60 <target name="compile" depends="init" description="编译java文件"> 61 <echo message="begin compile..." /> 62 <javac srcdir="${src.dir}" destdir="${build.dir}/classes" 63 includeantruntime="false" nowarn="on" 64 source="1.7" target="1.7" deprecation="true" debug="true" 65 encoding="UTF-8" classpathref="project.classpath"> 66 <compilerarg line="-Xlint:unchecked" /> 67 <!-- <classpath refid="project.classpath" /> --> 68 </javac> 69 <copy todir="${build.dir}/classes"> 70 <fileset dir="${src.dir}"> 71 <include name="**/*.xml" /> 72 <include name="**/*.properties" /> 73 <include name="**/*.sql" /> 74 </fileset> 75 <fileset dir="${config.dir}"> 76 <include name="**/*.xml" /> 77 <include name="**/*.properties" /> 78 <include name="**/*.ftl" /> 79 <include name="**/*.xls" /> 80 <include name="**/*.ttc" /> 81 </fileset> 82 </copy> 83 <echo message="end compile..." /> 84 </target> 85 86 <!-- 将class文件打成 jar包 --> 87 <!-- 88 <target name="pack" depends="compile"> 89 <jar jarfile="${build.dir}/${webapp.name}.jar"> 90 <fileset dir="${build.dir}/classes"> 91 <include name="**/*.class"/> 92 </fileset> 93 </jar> 94 </target> 95 --> 96 97 <!-- 打成war包, 名称默认为 项目名 --> 98 <target name="war" depends="compile" description="将工程打成war包"> 99 <echo message="begin war..." /> 100 <war destfile="${dist.dir}/${webapp.name}.war" basedir="${webRoot.dir}" 101 webxml="${webRoot.dir}/WEB-INF/web.xml"> 102 <lib dir="${lib.dir}" /> 103 <classes dir="${build.dir}/classes" /> 104 <fileset dir="${webRoot.dir}"> 105 <include name="***.*" /> 106 </fileset> 107 <fileset dir="${config.dir}"> 108 <include name="***.*" /> 109 </fileset> 110 </war> 111 <echo message="end war..." /> 112 </target> 113 114 <!-- copy war包 tomcat的deploy目录 --> 115 <target name="deploy" depends="war" description="部署项目"> 116 <echo message="begin deploy..." /> 117 <copy file="${dist.dir}/${webapp.name}.war" todir="${catalina.home}/webapps" /> 118 <echo message="end deploy..." /> 119 </target> 120 121</project>
参考:
http://www.voidcn.com/blog/wangyajin333/article/p-26662.html
http://www.zving.com/c/2014-05-30/258250.shtml
http://blog.csdn.net/db308950372/article/details/9225539
http://blog.sina.com.cn/s/blog\_b0d01b5b0102w6va.html