參考鏈接:
https://www.cnblogs.com/yangyuke1994/p/9817913.html
https://www.cnblogs.com/yangyuke1994/p/9818011.html
項目代碼存儲在svn上,需要構建的項目有多個svn地址,因為有多個模塊,所以要打多個war包
Jenkins的配置如圖
源碼管理:
構建:
我的項目需要打7個工程的war包,所以對應的module和構建配置了7個,
構建觸發器,構建環境和構建后操作根據實際情況配置,我這沒有配置
build.xml:
build.xml的配置參考了https://www.cnblogs.com/yangyuke1994/p/9818011.html,
因為我這個項目有個特殊的地方,部分項目的src目錄下有sql文件,打包的時候要把sql文件也復制到src目錄下,所以需要改build.xml文件
例如:
我要達到的效果(編譯后對應目錄下的sql文件和編譯生成的class文件都在)
所以在build.xml文件中編譯完java文件后,要把sql文件拷貝到對應的src目錄下
其中要注意<include name="**/*.sql" />,因為sql文件在src的子目錄下,所以name要寫成**/*.sql,如果寫成name=*.sql會在src的當前目錄下找,是找不到.sql文件的,
這里的細節要注意下
build.xml的完整內容

1 <?xml version="1.0" encoding="GBK"?> 2 <project name="triagedoctor" default="deploy" basedir="."> 3 <property environment="env" /> 4 <property name="webapp.name" value="triagedoctor" /> 5 <property name="catalina.home" value="D:\apache-tomcat-7.0.75" /> 6 <property name="dist.dir" value="${basedir}/dist" /> 7 <property name="ant.dir" value="D:\apache-ant-1.10.8" /> 8 <property name="webRoot.dir" value="${basedir}/WebRoot" /> 9 <property name="src.dir" value="${basedir}/src" /> 10 <property name="resources.dir" value="${basedir}/res" /> 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 <!-- <property name="build.compiler" value="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el6_10.x86_64" /> --> 16 17 <!-- 初始化classpath --> 18 <path id="project.classpath"> 19 <fileset dir="${lib.dir}"> 20 <include name="**/*.jar" /> 21 </fileset> 22 <!-- 添加tomcat類路徑 --> 23 <fileset dir="${catalina.home}/lib"> 24 <include name="*.jar" /> 25 </fileset> 26 <!-- ant lib包 --> 27 <fileset dir="${ant.dir}"> 28 <include name="**/*.jar" /> 29 </fileset> 30 </path> 31 32 <!-- get the source compile classpath in a printable form --> 33 <pathconvert pathsep="${line.separator}| |-- " 34 property="echo.path.compile" 35 refid="project.classpath"> 36 </pathconvert> 37 38 <!-- show classpath jars --> 39 <target name="print_classpath"> 40 <echo message="|-- compile classpath"/> 41 <echo message="| |"/> 42 <echo message="| |-- ${echo.path.compile}"/> 43 </target> 44 45 46 <!-- 刪除之前的目錄結構 --> 47 <target name="clear" description="清理舊文件"> 48 <delete dir="${build.dir}" /> 49 <delete dir="${dist.dir}" /> 50 <delete file="${catalina.home}/webapps/${webapp.name}.war" /> 51 <delete dir="${catalina.home}/webapps/${webapp.name}" /> 52 </target> 53 54 <!-- 創建目錄結構 --> 55 <target name="init" depends="clear" description="創建初始化目錄結構"> 56 <mkdir dir="${build.dir}/classes" /> 57 <mkdir dir="${dist.dir}" /> 58 </target> 59 60 <!-- 編譯java --> 61 <target name="compile" depends="init" description="編譯java文件"> 62 <echo message="begin compile..." /> 63 <javac srcdir="${src.dir}" destdir="${build.dir}/classes" 64 includeantruntime="false" nowarn="on" 65 source="1.7" target="1.7" deprecation="true" debug="true" 66 encoding="UTF-8" classpathref="project.classpath" 67 > 68 <!-- <compilerarg line="-XDignore.symbol.file"/> --> 69 <compilerarg line="-Xlint:unchecked" /> 70 <!-- <classpath refid="project.classpath" /> --> 71 </javac> 72 <copydir dest="${build.dir}/classes" src="${resources.dir}" /> 73 <copy todir="${build.dir}/classes"> 74 <fileset dir="${src.dir}"> 75 <include name="**/*.sql" /> 76 </fileset> 77 </copy> 78 <echo message="end compile..." /> 79 </target> 80 81 <!-- 將class文件打成 jar包 --> 82 <!-- 83 <target name="pack" depends="compile"> 84 <jar jarfile="${build.dir}/${webapp.name}.jar"> 85 <fileset dir="${build.dir}/classes"> 86 <include name="**/*.class"/> 87 </fileset> 88 </jar> 89 </target> 90 --> 91 92 <!-- 打成war包, 名稱默認為 項目名 --> 93 <target name="war" depends="compile" description="將工程打成war包"> 94 <echo message="begin war..." /> 95 <war destfile="${dist.dir}/${webapp.name}.war" basedir="${webRoot.dir}" 96 webxml="${webRoot.dir}/WEB-INF/web.xml"> 97 <lib dir="${lib.dir}" /> 98 <classes dir="${build.dir}/classes" /> 99 <fileset dir="${webRoot.dir}"> 100 <include name="***.*" /> 101 </fileset> 102 </war> 103 <echo message="end war..." /> 104 </target> 105 106 <!-- copy war包 tomcat的deploy目錄 --> 107 <target name="deploy" depends="war" description="部署項目"> 108 <echo message="begin deploy..." /> 109 <copy file="${dist.dir}/${webapp.name}.war" todir="${catalina.home}/webapps" /> 110 <echo message="end deploy..." /> 111 </target> 112 113 </project>
配置完后,通過Jenkins構建就能打包了