zoukankan      html  css  js  c++  java
  • 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构建就能打包了

  • 相关阅读:
    天猫和淘宝有什么区别
    Oracle (内连接)
    共享受限资源,Brian的同步规则
    后台线程,优先级,sleep,yield
    runnable和thread的区别
    Oracle 左连接、右连接、全外连接、(+)号作用、inner join(等值连接) (转载)
    oracle创建表
    oracle常见错误
    GUID是什么意思及Guid在sqlserver中的使用
    表中查询重复的数据,如何通过sql语句查询?
  • 原文地址:https://www.cnblogs.com/yrxns/p/13071422.html
Copyright © 2011-2022 走看看