Svn + tomcat + Hudson持续集成部署
2. 我这里使用hudson-3.0.1版本
3. 下载后hudson是一个 war 包
4. 操作部署:
(1). 直接将hudson的war包复制到tomcat的webapps 中,启动运行tomcat,直接在浏览器地址中输入:http://localhost:16001/hudson-3.0.1/
(2). 登陆界面如下图:
(3).在整个页面中配置jdk,ant,maven等信息,如下图:
(4).查看下hudson安装的插件,确保已经安装了如下图插件:
(5).如果使用代理上网的话,还需要设置代理服务器,如下图:
(6).创建一个hudson任务,如下图:
最后不要忘记保存!
(7). 编写项目部署ant文件,如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="AUTODEPLOY_FSPDRS" default="deploy" basedir=".">
<description>使用【HUDSON-3】自动化持续部署【评审主系统】</description>
<target name="about" description="关于">
<echo>########################</echo> <echo>【持续部署项目构建工作文件】</echo> <echo>########################</echo>
<echo>【该文件是持续部署构建文件,如果你需要使用Ant构建该应用程序请使用项目根目录'deploy'下build.xml文件构建】</echo>
</target>
<target name="init">
<!--项目名称--> <property name="project.name" value="fspdrs" /> <!--项目jar文件路径--> <property name="lib.dir" value="${basedir}/WebRoot/WEB-INF/lib"/> <!--项目源文件路径--> <property name="src.dir" value="${basedir}/src/main/java"/> <!--项目配置文件路径--> <property name="configPath" value="config"/> <!--构建路径--> <property name="build.dir" value="${basedir}/build" /> <!--应用服务器路径--> <property name="app.dir" value="E:\fspdrs\32bit\apache-tomcat-7.0.41"/> <!--应用服务器启动日志文件 --> <property name="log.file" value="${app.dir}/hudson_subsystem_tomcat.log"/> <!--应用服务器jar文件路径--> <property name="runtime.lib" value="${app.dir}/lib" /> <!--应用服务器项目部署路径--> <property name="deploy.dir" value="${app.dir}/webapps" /> <!--项目的WebRoot路径--> <property name="webRoot.dir" value="${basedir}/WebRoot" /> <!--应用服务器项目访问路径--> <property name="app.url" value="http://localhost:8006/"/>
<property name="javac.debug" value="on" /> <property name="javac.optimize" value="off" /> <property name="javac.target" value="1.6" /> <property name="javac.source" value="1.6" />
<condition property="tomcat.open"> <http url="${app.url}" /> </condition>
<condition property="tomcat.close"> <not> <http url="${app.url}" /> </not> </condition>
<path id="project.class.path"> <fileset dir="${lib.dir}"> <include name="*.jar" /> </fileset> <fileset dir="${runtime.lib}"> <include name="*.jar" /> </fileset> </path>
<tstamp /> <property environment="env" /> <delete dir="${build.dir}" /> <mkdir dir="${build.dir}" /> </target>
<target name="compaile" depends="init" description="编译java文件"> <echo>正在编译程序,请稍后...</echo> <javac srcdir="${src.dir}" destdir="${build.dir}" includeantruntime="false"nowarn="on"source="1.6"target="1.6"deprecation="true"debug="true" encoding="UTF-8"classpathref="project.class.path"> </javac> <copy todir="${build.dir}"> <fileset dir="${src.dir}"> <exclude name="**/*.java"/> </fileset> <fileset dir="${configPath}"> <include name="**/*.xml" /> <include name="**/*.properties" /> </fileset> </copy> <echo>编译程序已完成!</echo> </target>
<target name="war" depends="compaile"> <echo>正在压缩War包,请稍后...</echo> <war destfile="${basedir}/${project.name}.war"basedir="${basedir}/WebRoot"webxml="${basedir}/WebRoot/WEB-INF/web.xml"> <lib dir="${lib.dir}" /> <classes dir="${build.dir}" /> <fileset dir="${webRoot.dir}"> <include name="generalsearch_template/**"/> <include name="help/**"/> <include name="images/**"/> <include name="installerSoft/**"/> <include name="rpt_template/**"/> <include name="script/**"/> <include name="style/**"/> <include name="taglibs/**"/> <include name="weboffice/**"/> <include name="temp/**"/> <include name="WEB-INF/**"/> <include name="403.jsp"/> <include name="404.jsp"/> <include name="500.jsp"/> <include name="code.jsp"/> <include name="error.jsp"/> <include name="login.jsp"/> <include name="timeout.jsp"/> </fileset> </war> <echo>压缩War包已完成!</echo> </target>
<target name="tomcat-start"> <echo>启动部署服务器TOMCAT中,请稍后...</echo> <exec dir="${app.dir}/bin" executable="cmd" failonerror="false" output="${log.file}" append="true"> <env path="${app.dir}" key="CATALINA_HOME" /> <env path="${app.dir}\temp" key="CATALINA_TMPDIR" /> <env path="${app.dir}" key="CATALINA_BASE" /> <arg value="/C startup.bat" /> </exec> <echo>启动部署服务器TOMCAT已完成!</echo> </target>
<target name="tomcat-stop" if=""> <echo>停止部署服务器TOMCAT中,请稍后...</echo> <exec dir="${app.dir}/bin" executable="cmd" failonerror="false" output="${log.file}" append="true"> <env path="${app.dir}" key="CATALINA_HOME" /> <env path="${app.dir}\temp" key="CATALINA_TMPDIR" /> <env path="${app.dir}" key="CATALINA_BASE" /> <arg value="/c shutdown.bat" /> </exec> <echo>停止部署服务器TOMCAT已完成!</echo>
<waitfor maxwait="5" maxwaitunit="second"> <available file="errors.log" /> </waitfor> </target>
<target name="deploy" depends="war"> <echo>正在执行自动化构建部署操作,请稍后...</echo> <antcall target="tomcat-stop" /> <waitfor maxwait="60000"> <not> <http url="${app.url}" /> </not> </waitfor> <delete dir="${deploy.dir}/${project.name}.war"></delete> <delete dir="${app.dir}/webapps/${project.name}.war"></delete> <delete dir="${app.dir}/webapps/${project.name}"></delete> <copy todir="${deploy.dir}" file="${basedir}/${project.name}.war"></copy> <antcall target="tomcat-start" /> <echo>自动化构建部署已经完成!</echo> </target>
</project> |
(8). 创建好任务后,如下图,点击“构建一次图标”即可,完成持续部署操作。
(9).命令行输入如下图: