Jenkins构建非maven项目
参考链接:
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构建就能打包了