`

ant + svn 自动部署项目

阅读更多
build.properties

# -----------------------------------------------------------------------------
# build.properties
# This file is referenced by the sample build.xml file.
# -----------------------------------------------------------------------------

build.version=1.0.0
 
#you need these jars
svnant.jar=/usr/local/ant/lib/svnant.jar
svnClientAdapter.jar=/usr/local/ant/lib/svnClientAdapter.jar
svnjavahl.jar=/usr/local/ant/lib/svnjavahl.jar
javaEE.lib=/opt/tomcat-7/lib
 
#tomcat information
#tomcat home
tomcat.home=/opt/tomcat-7
#tomcat project deploy dir              
tomcat.deploy=${tomcat.home}/webapps/${ant.project.name}
 
debuglevel=source,lines
target=1.6
source=1.6
 
work.space=/tmp/project
 
build.dir=${work.space}/WebRoot/WEB-INF/classes
lib.dir=${work.space}/WebRoot/WEB-INF/lib
 
java.source=${work.space}/src
java.config=${work.space}/config
 
web.dir=${work.space}/WebRoot
resource.dir=${work.space}/resources

zip.file=${tomcat.deploy}/${ant.project.name}.zip
 
#project information in SVN 
urlRepos=svn://192.168.1.114/project/lottery
svn.user=xxx
svn.passwd=xxxx


build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="lottery" default="auto">
 <!--  all properties are in build.properties -->
 <property file="build.properties" />
 <!-- svn runtime libs -->
 <path id="svnant.lib">  
         <pathelement location="${svnjavahl.jar}" />  
         <pathelement location="${svnant.jar}" />  
         <pathelement location="${svnClientAdapter.jar}" />  
 </path>  
 <!--java EE  库 -->  
     <path id="javaEE">  
         <fileset dir="${javaEE.lib}">  
             <include name="**/*.jar" />  
         </fileset>  
     </path>  

 <!-- load the libs in classpath -->
 <path id="project.classpath">
 <pathelement location="${build.dir}"/>
 <fileset dir="${lib.dir}"/>
 </path>
 
 <!-- clean up -->

 <target name="clear">
 <delete dir="${work.space}"></delete>
 <delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}"></delete>
 <delete dir="${tomcat.deploy}/${ant.project.name}"></delete>
 <delete dir="${tomcat.deploy}/${ant.project.name}.war"></delete>
 </target>
 <!-- load the svn task -->
 <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classdata-path="svnant.jar" />
 <svnSetting id="svn.settings" javahl="false" svnkit="true" username="${svn.user}" password="${svn.passwd}" />

 <!--svn checkout-->
 <target name="svn" depends="clear">
 <mkdir dir="${work.space}"/>
 <svn refid="svn.settings">
 <checkout url="${urlRepos}" destdata-path="${work.space}" />
 </svn>
 </target>
 <!--compile the project-->
 
 <target name="compile" depends="svn" description="----------compile ${ant.project.name}-----------">
 <echo message="----------compile ${ant.project.name}:${ant.file}-----------"></echo>
 <mkdir dir="${build.dir}"/>
 <copy includeemptydirs="false" todir="${build.dir}">
 <fileset dir="${java.source}" excludes="**/*.launch, **/*.java"></fileset>
 <fileset dir="${java.config}" excludes="**/*.launch, **/*.java"></fileset>
 </copy>
 
 <javac  includeantruntime="false" includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build.dir}" source="${source}" target="${target}" encoding="utf-8">  
             <src data-path="${java.source}" />  
             <exclude name="config/"/>  
             <classpath>  
                 <path refid="project.classpath">  
                 </path>  
                 <path refid="javaEE">  
                 </path>  
   
             </classpath>  
             <compilerarg value="-Xlint:unchecked"/>  
         <compilerarg value="-Xlint:deprecation"/>  
     </javac>
 
 </target>
 <!--compress and pack -->
 <!--deploy to the tomcat project dir-->
    <target name="deploy" depends="compile">
     <mkdir dir="${tomcat.home}/webapps/${ant.project.name}"/>
     <zip destfile="${zip.file}">
          <zipfileset dir="${web.dir}"/>
     </zip>
     <unzip dest="${tomcat.home}/webapps/${ant.project.name}" overwrite="true" src="${zip.file}"/>
     
 </target>
 
 <!--shutdowntomcat-->

 <target name="shutdowntomcat" description="========shutdowntomcat===========">
 <exec executable="${tomcat.home}/bin/shutdown.sh" failonerror="false">
 </exec>
 <sleep seconds="10" />
 </target>
 <!--startuptomcat-->

 <target name="startuptomcat" description="========startuptomcat===========">
 <sleep seconds="5" />
 <exec executable="${tomcat.home}/bin/startup.sh" failonerror="true" >
 </exec>
 </target>

 <!--Done,restart tomcat-->

 <target name="auto" depends="shutdowntomcat,deploy,startuptomcat">
 <echo message="All DONE!!!!" />
 </target>
</project>

 

  在安装了ant的环境下面运行 build.xml

 

上面的tomcat的目录需要自己制定,svn的信息也需要自己设定,配置信息都在build.properties文件中

 

分享到:
评论

相关推荐

    基于Jmeter+Ant+SVN+Jenkins实现接口自动化测试

    本话题将详细介绍如何利用JMeter、Ant、SVN和Jenkins这四款工具来构建一个完整的接口自动化测试流程。 首先,Apache JMeter是一款强大的性能测试工具,它主要用于测试Web应用,包括接口测试。通过JMeter,我们可以...

    Ant+Junit+SVN的安装过程

    首先,Ant是一个基于Java和XML的构建工具,它的主要功能是管理和自动化项目的构建过程。Ant通过一个名为build.xml的XML配置文件来定义一系列的任务,这些任务涵盖了从编译源代码、打包、部署到运行测试等多种操作。...

    ant+svn的测试框架

    总结起来,这个“ant+svn的测试框架”很可能是一个关于如何结合使用Ant和SVN来搭建和管理Android应用的测试环境的教程或示例项目。它涵盖了版本控制、构建自动化以及测试的实践,对于Android开发者来说,这样的知识...

    CruiseControl + ANT +SVN

    【CruiseControl + ANT + SVN】是一个集成开发环境(IDE)自动化构建和版本控制的解决方案。这个组合在软件开发过程中发挥着关键作用,确保代码的持续集成和版本管理。下面将详细阐述这三个组件以及它们如何协同工作...

    Hudson+Ant+SVN+Tomcat实现快速构建(一)

    标题 "Hudson+Ant+SVN+Tomcat实现快速构建(一)" 涉及的是在软件开发中使用一系列工具进行自动化构建的过程。这个过程是持续集成的一部分,旨在提高开发效率,确保代码质量,并减少错误。以下是这些工具在构建流程...

    antsvn更新打包部署提交自动化

    标题中的“antsvn更新打包部署提交自动化”涉及的是在软件开发过程中如何利用Ant(一个Java构建工具)和Subversion(SVN,版本控制系统)实现自动化的构建、更新、打包、部署和提交流程。这个过程旨在提高开发效率,...

    Jenkins+SVN+Ant持续集成环境配置笔记.pdf

    在Jenkins项目配置中指定Ant的脚本文件位置,Jenkins就会在触发构建时执行这个脚本,完成项目的自动化构建。这样,开发者只需将代码提交到SVN仓库,Jenkins就会自动进行后续的构建工作,从而实现持续集成。 在整个...

    一键部署demo+jetty+svn+ant配置

    本教程将详细介绍如何通过“一键部署”实现对一个基于Java的项目(DEMO)进行配置,结合Jetty服务器、Subversion(SVN)版本控制系统以及Ant构建工具的整合使用。 首先,让我们了解这些组件的作用: 1. **DEMO**:...

    ant获取SVN版本信息的jar包xmltask以及安装,使用方法

    在IT行业中,构建自动化工具是项目管理的重要环节,Apache Ant是一个广泛应用的Java构建工具,它允许开发者通过XML配置文件来定义构建任务。本主题聚焦于如何利用Ant与XMLTask jar包来获取SVN(Subversion)版本信息...

    Jmeter+ant+Jenkins集成接口自动化测试说明.docx

    【Jmeter+ant+Jenkins集成接口自动化测试详解】 接口自动化测试在现代软件开发中扮演着重要的角色,它能够提高测试效率,确保系统的稳定性和可靠性。JMeter是一款强大的开源性能测试工具,通常用于接口压力测试,但...

    ant操作SVN的jar包

    Ant是一种由Apache软件基金会开发的Java构建工具,它允许开发者通过XML文件定义任务来自动化构建、测试和部署Java应用程序。而SVN(Subversion)则是一种版本控制系统,用于管理项目的源代码版本,便于团队协作和...

    Hudson_Jenkins+SVN_配置使用手册__实验室编写

    其中,Jenkins作为一款开源的自动化构建和测试工具,提供了丰富的插件支持,能够实现从代码提交到部署的自动化流水线。而Subversion(SVN),作为一种集中式版本控制系统,被广泛用于代码版本管理和团队协作。本文将...

    ant 脚本从svn上取代码打包代码全,同时包括相关的jar包

    在给定的场景中,"ant 脚本从svn上取代码打包代码全,同时包括相关的jar包",这意味着我们需要了解如何用Ant配合Subversion(SVN)进行代码管理,并打包项目,同时处理依赖的jar文件。 首先,让我们来看看Ant脚本的...

    利用ant脚本 自动构建svn增量.docx

    - **部署**:测试通过后,自动部署到测试或生产环境。 **运行环境与依赖** - **JDK**:安装并配置Java开发环境,为Ant提供基础支持。 - **Ant**:安装Ant,并配置环境变量,使其能够在命令行中调用。 - **SVN工具*...

    jenkins+svn+maven构建

    Jenkins的SVN插件可以连接SVN版本控制系统,检出最新的代码,实现自动化构建和部署软件。 构建过程 Jenkins的构建过程包括以下几个步骤: 1. 检出代码:Jenkins从SVN版本控制系统中检出最新的代码。 2. 编译代码...

Global site tag (gtag.js) - Google Analytics