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>
View Code

 

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

posted @ 2020-06-09 11:23  悠然现南山  阅读(2056)  评论(0编辑  收藏  举报