Jenkins构建非maven项目

参考链接:

https://www.cnblogs.com/yangyuke1994/p/9817913.html

https://www.cnblogs.com/yangyuke1994/p/9818011.html

 

 

项目代码存储在svn上,需要构建的项目有多个svn地址,因为有多个模块,所以要打多个war包

Jenkins的配置如图

源码管理:

Jenkins构建非maven项目_第1张图片

 

 

 

构建:

Jenkins构建非maven项目_第2张图片

 

 

我的项目需要打7个工程的war包,所以对应的module和构建配置了7个,

构建触发器,构建环境和构建后操作根据实际情况配置,我这没有配置

 

 

build.xml:

 

build.xml的配置参考了https://www.cnblogs.com/yangyuke1994/p/9818011.html,

因为我这个项目有个特殊的地方,部分项目的src目录下有sql文件,打包的时候要把sql文件也复制到src目录下,所以需要改build.xml文件

例如:

Jenkins构建非maven项目_第3张图片

 

 

 

 

我要达到的效果(编译后对应目录下的sql文件和编译生成的class文件都在)

Jenkins构建非maven项目_第4张图片

 

 

 

 

 

 

 

 所以在build.xml文件中编译完java文件后,要把sql文件拷贝到对应的src目录下

Jenkins构建非maven项目_第5张图片

 

 其中要注意,因为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     
 14     
 15     
 16 
 17     
 18     <path id="project.classpath">
 19         <fileset dir="${lib.dir}">
 20             <include name="**/*.jar" />
 21         fileset>
 22         
 23         <fileset dir="${catalina.home}/lib">
 24             <include name="*.jar" />
 25         fileset>
 26         
 27         <fileset dir="${ant.dir}">
 28             <include name="**/*.jar" />
 29         fileset>
 30     path>
 31  
 32     
 33     <pathconvert pathsep="${line.separator}|   |-- "
 34              property="echo.path.compile"
 35              refid="project.classpath">
 36     pathconvert>
 37     
 38     
 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     
 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             
 69             <compilerarg line="-Xlint:unchecked" />
 70             
 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     
 82     
 91  
 92     
 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     
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>
View Code

 

配置完后,通过Jenkins构建就能打包了

你可能感兴趣的:(Jenkins构建非maven项目)