java基础-典型的hudson配置编译打包j2ee工程

我们有一个场景,要求有一个系统能自动更新svn,编译打war包,这时候我们使用hudson+她的svn插件+ant
1.基础环境
drwxrwxr-x  5 srtboss srtboss     4096 Jul  9 09:27 AntBuild
drwxr-xr-x  6 srtboss srtboss     4096 May 15 22:36 apache-ant-1.9.1
-rw-rw-r--  1 srtboss srtboss  8241998 May 22 10:26 apache-ant-1.9.1-bin.zip
drwxr-xr-x  9 srtboss srtboss     4096 Feb 12 22:45 apache-tomcat-7.0.37
-rw-r--r--  1 srtboss srtboss  8320951 Mar 18 09:34 apache-tomcat-7.0.37.zip
-rw-r--r--  1 srtboss srtboss     4440 Jun 26 15:34 build.bak
-rw-r--r--  1 srtboss srtboss     4442 Jul  1 18:20 build.bak.20130701
-rw-r--r--  1 srtboss srtboss     4656 Jul  2 12:17 build.bak.20130702
-rw-r--r--  1 srtboss srtboss     3438 Jul  9 08:31 build.bak.20130709
-rw-r--r--  1 srtboss srtboss     3451 Jul  9 09:17 build.xml
-rw-r--r--  1 srtboss srtboss 49760685 Jun 25 20:10 jdk-1_5_0_22-linux-i586.bin
-rw-r--r--  1 srtboss srtboss 85315136 Jan 31  2012 jdk-6u25-linux-x64.bin
drwxr-xr-x  9 srtboss srtboss     4096 Oct  9  2009 jdk1.5.0_22
drwxr-xr-x 10 srtboss srtboss     4096 Jun 25 19:58 jdk1.6.0_25

2.hudson系统配置
jdk   /home/srtboss/jdk1.6.0_25
ant  /home/srtboss/apache-ant-1.9.1
3.任务配置
Source Code Management
Repository URL  http://192.168.13.49/SRT_svn/srt_boss/02_Branches/2.8/srt_boss
【系统配置】

 

【ANT配置】

 
 

【SVN配置】
4.最重要的文件build
非常完美的解决了 编译打包这个问题
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="/home/srtboss/.hudson/jobs/boss2/workspace" default="publish">
<target name="init">
        <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> 
       
<property name="tragetdir"   value="/home/srtboss" />
        <property name="version"     value="0.2" />
        <property name="year"        value="2006" />
       <property name="debug"       value="off" />
       <property name="optimize"    value="on" />
       <property name="deprecation" value="on" />
     <property name="src.dir"    value="${basedir}/src-boss" />
     <property name="webapp.dir" value="${basedir}/WebRoot" />
<property name="build.src"      value="${tragetdir}/AntBuild/build" />
     <property name="build.dest"     value="${tragetdir}/AntBuild/bin" />
     <property name="buildwar.dest"  value="${tragetdir}/AntBuild/warsrc" />
     <property name="build.javadocs" value="${tragetdir}/AntBuild/doc" />
     <property name="jar.dest" value="${tragetdir}/AntBuild/jar" />
     <property name="war.dest" value="${tragetdir}/AntBuild/war" />

     
<!--classpath-->
      <property name="tomcat.home" value="/home/srtboss/apache-tomcat-7.0.37"/>
    
<property name="lib.dir"     value="${basedir}/WebRoot/WEB-INF/lib" />
     <path id="classpath">
         <fileset dir="${tomcat.home}">
            <include name="**/*.jar"/>
         </fileset>
         <fileset dir="${lib.dir}">
            <include name="**/*.jar"/>
         </fileset>
      </path>
</target>
<target name="prepare-src" depends="init">
   <mkdir dir="${build.src}" />
   <mkdir dir="${build.dest}" />
   <mkdir dir="${jar.dest}" />
   <mkdir dir="${war.dest}" />
   <mkdir dir="${buildwar.dest}" />
   <copy todir="${build.src}">
       <fileset dir="${src.dir}">
          
<include name="**/**" />
       </fileset>
   </copy>
   <copy todir="${buildwar.dest}">
        <fileset dir="${webapp.dir}">
<include name="**/**"/>
        </fileset>
   </copy>
</target>
<target name="build" depends="prepare-src">
     <javac encoding="UTF-8" srcdir="${build.src}" destdir="${buildwar.dest}/WEB-INF/classes" source="1.6"   target="1.6" optimize="off" nowarn="true">
      
<classpath refid="classpath"/>
     </javac>
</target>
<target name="srt-boss.war" depends="build">
    <war warfile="${war.dest}/srt-boss.war" webxml="${buildwar.dest}/WEB-INF/web.xml">
      <lib dir="${buildwar.dest}/WEB-INF/lib"/>
      <classes dir="${buildwar.dest}/WEB-INF/classes"/>
      <fileset dir="${buildwar.dest}">
         <exclude name="WEB-INF/" />
      </fileset>
    </war>
</target>
<target name="publish" depends="srt-boss.war,clean">
     <copy todir="${tomcat.home}/webapps">
        <fileset dir="${war.dest}" >
            <include name="**/*.war"/>
        </fileset>
     </copy>
</target>
<target name="javadoc" depends="build">
    <mkdir dir="${build.javadocs}" />
    <javadoc packagenames="${packages}" sourcepath="${build.src}" destdir="${build.javadocs}" author="true" version="true" use="true" splitindex="true" windowtitle="${Name} API" doctitle="${Name}">
       <classpath refid="classpath" />
     </javadoc>
</target>
<target name="clean" depends="init">
    <delete dir="${build.src}"/>
    <delete dir="${build.dest}/org"/>
    <delete dir="${build.dest}/com"/>
    <delete dir="${buildwar.dest}"/>
    <delete>
          <fileset dir="${build.dest}" includes="**/*.class"/>
    </delete>
</target>
</project>

我们这里使用eclipse的javac编译器
org.eclipse.jdt.core.JDTCompilerAdapter,接着我们可以享受自动化编译的好处了,设置定时任务自动去更新svn,自动编译吧,抛弃落后的手工打包过程。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值