`

自动获取svn代码并且编译发布

 
阅读更多

自动获取svn代码并且编译发布  

主要分几个步骤

步骤一:让ant支持从svn获取源代码

我们去subclipse网站的svnant项目下载所需包,注意subversion与svnant的版本统一的问题,直接将下载下来的zip包中的jar拷贝到ant的lib目录下

步骤二:写ant脚本

在ant脚本中主要加入了获取代码的脚本,如下:

<svn username="myname" password="mypwd" javahl="false">
            <checkout url="${urlRepos}" destPath="${work.space}"/>
</svn>

下面脚本(build.xml)中的j2ee1.4lib大家可直接指向应用服务器的lib包,即可编译

步骤三:编译发布,以root身份直接ant 即可。

 

附上从网上抄来的脚本:

1、build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="cyntv20" default="auto">
    <!-- all properties are in build.properties -->
    <property file="${basedir}/build.properties"/>
    <!--svn本身需要的运行库 -->
    <path id="svnant.lib">
        <pathelement location="${svnjavahl.jar}"/>
        <pathelement location="${svnant.jar}"/>
        <pathelement location="${svnClientAdapter.jar}"/>
    </path>
    <!--java EE 1.4 库 -->
   <path id="javaEE1.4">
        <fileset dir="${javaEE1.4.lib}">
            <include name="**/*.jar"/>
        </fileset>
    </path>
    <!--项目的classpath库 -->
    <path id="project.classpath">
        <pathelement location="${build.dir}"/>
        <fileset dir="${lib.dir}"/>
    </path>
    <!--清理项目任务(干掉下载目录,tomcat原来的部署文件) -->
    <target name="clear">
        <delete dir="${work.space}"/>
        <delete dir="${tomcat.home}/work/Catalina/localhost/${ant.project.name}"/>
        <delete dir="${tomcat.home}/webapps/${ant.project.name}"/>
        <delete dir="${tomcat.home}/webapps/${ant.project.name}.war"/>
    </target>
    <!-- load the svn task -->
    <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib"/>
    <!--svn同步任务-->
    <target name="svn" depends="clear">
        <mkdir dir="${work.space}"/>
        <svn username="myname" password="mypwd" javahl="false">
            <checkout url="${urlRepos}" destPath="${work.space}"/>
        </svn>
    </target>
    <!--编译-->
    <target name="compile"   description="======compile project======">
        <echo message="compile==========>${ant.project.name}: ${ant.file}"/>
        <mkdir dir="${build.dir}"/>
        <copy includeemptydirs="false" todir="${build.dir}">
            <fileset dir="${java.source}" excludes="**/*.launch, **/*.java"/>
        </copy>
        <!--<copy includeemptydirs="false" todir="${build.dir}">
            <fileset dir="${java.config}" excludes="**/*.launch, **/*.java"/>
        </copy>-->
        <javac includejavaruntime="true" debug="true" debuglevel="${debuglevel}" destdir="${build.dir}"
               source="${source}" target="${target}" encoding="GBK">
            <src path="${java.source}"/>
            <!--<exclude name="config/"/>-->
            <classpath>
                <path refid="project.classpath">
                </path>
              <path refid="javaEE1.4">
            </classpath>
        </javac>
        <!--<javac debug="true" debuglevel="${debuglevel}" destdir="${build.dir}" source="${source}" target="${target}"
               encoding="utf-8">
            <src path="${java.config}"/>
        </javac>-->
    </target>
    <!--压缩,打包-->
    <target name="war" depends="compile" description="======compress j2ee war file======">
        <mkdir dir="${dist.dir}"/>
        <!--compress j2ee war file-->
        <war destfile="${war.file}" webxml="${web.dir}/WEB-INF/web.xml">
            <fileset dir="${web.dir}"/>
            <classes dir="${build.dir}"/>
            <lib dir="${lib.dir}"/>
        </war>
    </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="false"></exec>
    </target>
    <!--部署到tomcat下面克-->
    <target name="deploy" depends="war">
        <copy file="${war.file}" todir="${tomcat.home}/webapps"/>
    </target>
    <!--全自动无敌部署,启动关闭tomcat-->
    <target name="auto" depends="shutdowntomcat,deploy,startuptomcat">
        <echo message="DONE!!!!"/>
    </target>
</project>

 

2、build.properties

tomcat.home =E:/dev/apache-tomcat-6.0.29


build.version=1.0.0

svnant.jar=D:/ant1.8/lib/svnant.jar
svnClientAdapter.jar=D:/ant1.8/lib/svnClientAdapter.jar
svnjavahl.jar=D:/ant1.8/lib/svnjavahl.jar
javaEE1.4.lib=D:/ant1.8/lib

debuglevel=source,lines
target=1.6
source=1.6

work.space=D:/ant1.8/cyntv/allsource
dist.dir=${work.space}

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}/src/config

web.dir=${work.space}/WebRoot
#resource.dir=${work.space}/resources

war.file=${dist.dir}/${ant.project.name}.war

urlRepos=svn://52.24.32.195/var/svn/svntest/code/test2.0

分享到:
评论

相关推荐

    自动获取SVN代码并编译代码 以及自动部署方案

    标题和描述提到的"自动获取SVN代码并编译代码 以及自动部署方案"是一种高效的工作流,它整合了版本控制、编译和部署三个重要环节,使得开发团队能够快速响应变更,减少手动操作带来的错误。以下是关于这个主题的详细...

    VS编译发布根据SVN自动更新版本号

    在软件开发过程中,版本控制是至关...通过以上步骤,你就可以实现VS编译发布时根据SVN自动更新版本号的功能,从而提高团队的效率和代码管理质量。记得定期更新和维护相关的脚本和插件,以适应项目的需求和VS的新版本。

    Windows下git拉取/推送,SVN更新/提交,maven自动编译打包,angular打包的bat脚本

    本主题将详细讲解如何利用Git进行拉取与推送,SVN进行更新和提交,Maven实现自动化编译,以及Angular项目的打包发布,这一切都将通过批处理(BAT)脚本来实现,以提高工作效率。 首先,我们来看Git的拉取(pull)和...

    VS2017 自动获取SVN版本控制号

    本篇将详细介绍如何在VS2017中配置自动获取SVN版本控制号,以便在每次编译时更新代码中的版本号。 首先,我们需要了解SVN版本号是什么。SVN reversion版本号是Subversion仓库中特定提交的唯一标识,它反映了代码库...

    自动获取svn版本号,修改指定dll,exe版本信息

    自动获取工程svn提交的版本号,然后修改指定dll,exe的版本信息。最好达到的效果是,每次提交完svn后重新编译代码,会将最后提交的版本号写到version里比如:2.0.0.64,;2.0是大版本号,手动修改资源信息即可,后两...

    Ubuntu自动编译Android版本并提交SVN版本

    C.) 根据 SVN 版本库和代码库的版本号,当前时间戳自劢生成编译版本号。 D.) 自劢检测是否在 linux 版本库中生成版本文件夹,如 V0, V1 …等。 E.) 根据自劢生成的编译版本号替换编译版本中 buildinfo.sh 的版本号。...

    jenkins安装部署并编译一个svn上的源代码项目并发布至远程Tomcat上

    本文旨在通过一个具体的示例,详细介绍如何利用 Jenkins 安装部署,并自动编译 SVN 上的源代码项目,最终发布至远程 Tomcat 服务器的过程。 #### 二、准备工作 1. **Jenkins 下载与安装**: - 访问 Jenkins 官方...

    SVN+ant 服务器代码打包编译流程详解,内含详细安装以及操作说明

    在这个SVN+ant服务器代码打包编译流程中,我们将深入探讨这两个工具的集成使用,以及如何通过build.xml和build.properties文件实现自动化编译。 首先,让我们了解SVN的安装和配置。在Windows上,你可以下载...

    svn 1.6.16源代码

    总的来说,获取并编译SVN 1.6.16的源代码是一项有益于开发者的工作,它不仅可以让开发者深入了解版本控制系统的运作机制,还可以根据需求定制SVN,以适应特定的项目环境。同时,由于该版本支持VS2008,使得Windows...

    ant打包的代码,包括从svn上获取代码

    在本项目中,Ant被用来执行自动化任务,包括从Subversion(SVN)版本控制系统中获取源代码,并对代码进行打包。 Subversion是一个开源的版本控制系统,用于管理软件项目的源代码。它允许开发人员在多个时间点保存...

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

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

    keil自动识别软件代码版本号,自动命名bin文件

    "RenameBinApplication"可能是一个定制的Keil插件或者脚本,它的功能是在编译完成后,自动检测当前代码的版本信息(如Git提交ID、SVN修订号等),并将该信息插入到生成的bin文件名中。这样,每次编译更新都会产生一...

    Jenkins+Maven+Svn实现代码自动打包与发布.docx

    本文主要讲解如何通过Jenkins、Maven和Svn这三个工具实现代码的自动打包与发布。首先,我们需要理解这三个工具的基本功能: Jenkins 是一个开源的持续集成(Continuous Integration, CI)服务器,用于自动化各种...

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

    【Ant脚本自动构建SVN增量】是一种高效且节省资源的软件开发实践,它使得开发和测试团队能够自动化处理从代码提交到构建、打包、再到部署的整个过程。使用Ant,一个基于XML的构建工具,可以创建可重复执行的脚本来...

    Jenkins+Maven+SVN+Tomcat 持续集成环境快捷部署

    每次代码提交后,通过自动化的构建(包括编译、测试和部署)来验证,从而尽快地发现集成错误。Jenkins是一款开源的自动化服务器,可以用来实现持续集成流程。Maven是Java的一个项目管理和构建自动化工具,能够处理...

    svn 代码管理器的原理

    6. **自动构建**:源代码管理可以与自动化构建工具结合,实现代码提交后自动编译测试,提高开发效率。 **什么是svn?** Subversion是一个自由且开源的版本控制系统,不仅用于软件配置管理,也可应用于任何需要版本...

    jenkins服务器自动编译和部署

    SVN 是一种版本控制系统,能够记录代码的修改历史,Jenkins 可以从 SVN 中获取最新的代码,然后进行编译和部署。 Maven 是一种项目管理工具,能够自动编译和打包项目,Jenkins 可以与 Maven 进行集成,从而实现自动...

Global site tag (gtag.js) - Google Analytics