`
zoujialiang
  • 浏览: 43065 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于ant、svn的自动构建脚本

阅读更多

     服务器上放了几个工程,启动了几个resin跑服务。所以,一开始要更新一个工程的方法是 :

1)找到工程的对应resin,sh httpd.sh stop。

2)进入对应的工程下,SVN UP进行更新。

3)更新完后进入工程下进行ant编译。

4)重复步骤一,进行 sh httpd.sh start。

由此可见,更新一个工程的时候得进行四个步骤,在进行每个步骤的时候还要记住resin、工程和ant的存放路径,这样太消耗程序员脑力,体力。虽然说人的大脑还有将近90%没被使用,但也不能被这个占用脑的内存是吧?!

     所以为了节约脑内存,现在一次将他们的路径和执行步骤写在一个shell脚本中,这样当你要更新项目时,你输入对应的命令和参数就可以自动完成了。下面就是我写的一个简单的shell脚本:

#!/bin/sh
ROOT_PATH=/backup
RESIN_PATH=/resinapp  #resin放置的路径

APP1_RESIN=app1resin #工程一对应的resion名
APP2_RESIN=app2resin #工程二对应的resion名
APP3_RESIN=app3resin # .......

JAVA_HOME=/usr/java/jdk1.5.0_07
ANT_HOME=/backup/ant/

上面的脚本是做了一些变量的赋值,当然如果你还有更多的项目和web容器的话,可以再继续添加变量,方便以后的调用。(这里我用的是resin,当能也可以是其它的如:tomcat),下面shell接上面:

#parmater check
if [ $# -lt 5 ]; then
	echo 'need: <mehod:[web]> <project name:[app1_name]> <svn:[checkout] [update]> <[branches path] [trunk]> <deploy name>'
	exit
fi
#stop resin
echo ">>>>>> resin stop<<<<<<<"
  case $5 in 
   'app1_name')
   cd $RESIN_PATH/$APP1_RESIN/bin
   echo "stop $RESIN_PATH/$APP1_RESIN"
   sh $RESIN_PATH/$APP1_RESIN/bin/httpd.sh stop
   ;;
   'app2_name')
   cd $RESIN_PATH/$APP2_RESIN/bin
   echo "stop $RESIN_PATH/$APP2_RESIN"
   sh $RESIN_PATH/$APP2_RESIN/bin/httpd.sh stop
   ;;
  #如果还有判断可直接在后面接
  esac

 当你没输入参数执行脚本时提示你输入对应参数,在这里设置了五个参数,参数的输入可以根据下面的脚本和你自己设置的svn路径输入。上面的代码功能是停掉对应的resin服务。已经很长了吧!确实啊,不过还有一段核心shell,不得不贴上来

#svn opt
echo ">>>> svn <<<<"
case $3 in
	'checkout')
	cd $ROOT_PATH/$1/
	rm -rf $ROOT_PATH/$1/$5
	mkdir $5
        if [ "$4" = "trunk" ]; then
		svn co svn://219.*.*.*/eGroup/$2/trunk $5 --username ** --password **
	else
		svn co svn://219.*.*.*/eGroup/$2/branches/$4 $5 --username ** --password **
	fi
	echo "dir $ROOT_PATH/$1/$5"
	echo "svn checkout >>>>>>>"
	;;
	'update')
	cd $ROOT_PATH/$1/$5
        svn up --username ** --password **
	echo "dir $ROOT_PATH/$1/$5"
        echo "svn update >>>>>>>"
	;;
esac
cd $ROOT_PATH/$1/$5
echo ">>>> ant build <<<<"
$ANT_HOME/bin/ant -f build.xml

上面的是得到对应工程的svn路径,能后进行checkout或update,再用ant执行工程目录下的build.xml编译。编译成功后启动对应的resin(如果再加进来的话不仅你不愿意看,我也会头大的),这样你的工程已经构建完成了。

     终于构建完成了,怎么觉得看了这篇文章觉得写脚本比不写脚本还麻烦,其实不能,写了脚步可能一时麻烦,但是工程的更新就显得犹为简介,你试想下,当你还在找对应resin要停掉的时候,我只要敲下一条命令已经完成。由于脚本太长所以将脚本附件也贴了上来,可以根据情况自行修改,可能还有更好的自动构建方法,在此只是本人的一个学习记录。

(感谢您的耐心阅读!)

 

0
0
分享到:
评论

相关推荐

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

    使用Ant,一个基于XML的构建工具,可以创建可重复执行的脚本来实现自动化。以下是关于这个主题的详细解释。 **Ant脚本的原理与应用** Ant是一个开源的Java构建工具,它通过XML格式的构建文件(build.xml)来定义...

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

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

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

    Ant是Apache组织开发的一款Java构建工具,它使用XML来描述构建过程,包括编译、测试、打包、部署等任务。...在实际开发中,Ant脚本可以被定制以满足各种复杂的构建需求,确保项目的构建过程自动化、可重复且高效。

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

    Ant是一个基于Java的构建工具,它提供了跨平台的构建脚本能力,能够执行编译、测试、打包等任务。它的核心是构建文件,通常命名为build.xml,其中包含了构建过程的步骤和指令。 XMLTask是Ant的一个扩展,它允许在...

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

    Ant是Apache组织开发的一款Java构建工具,它使用XML来描述构建过程,使得构建脚本具有良好的可读性和可维护性。在本项目中,Ant被用来执行自动化任务,包括从Subversion(SVN)版本控制系统中获取源代码,并对代码...

    ant操作SVN的jar包

    总之,`ant操作SVN的jar包`使得开发者能够利用Ant的灵活性和自动化的优点,结合SVN的强大版本控制功能,构建出高效、自动化的软件开发流程。通过合理配置Ant脚本和使用`svnant`库,可以大大提高团队协作效率,确保...

    ant svn插件jar包

    这个插件通常以jar包的形式存在,例如在给定的"antsvn"压缩包中。为了使用这个插件,你需要将jar包添加到Ant的类路径中。这样,你就可以在Ant构建文件中声明新的任务,比如`&lt;svn&gt;`,并配置相关属性来执行SVN命令。 ...

    ant学习之集成svn

    不过,我们可以根据标题推测这篇博文可能讲解了如何在Ant构建脚本中配置和使用SVN的相关任务,例如 checkout、commit、update等操作。 标签“源码”和“工具”暗示了内容可能涉及源代码管理和利用Ant工具进行自动化...

    Ant SVN依赖JAR包

    在Java开发过程中,Apache ...通过以上步骤,你可以在Ant构建脚本中集成SVN功能,方便地进行版本控制操作。这有助于简化开发流程,提高团队协作效率。请确保正确配置所有依赖,并始终备份好你的源代码,以防意外丢失。

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

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

    ANT 自动化构建

    `build.xml`是ANT的构建脚本,包含了所有构建任务的描述,如编译源代码、打包、测试和部署等步骤。这些任务通过ANT的任务(tasks)来实现,例如`javac`任务用于编译Java源代码,`jar`任务用于创建JAR文件,`copy`...

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

    此外,你还可以通过`&lt;property&gt;`元素定义属性,这些属性可以在整个构建脚本中重用,如源代码目录、目标目录等。 build.properties文件是Ant的属性文件,它用来存储配置信息,如目录路径、版本号等。这些属性可以在...

    Ant自动构建总结

    这个压缩包中包含的`build.xml`文件就是Ant的构建脚本,用于定义构建任务、依赖关系和目标。 1. **Ant基本概念**: - **项目(Project)**: Ant的核心单位,包含了构建过程中所有的任务、属性和文件集。 - **任务...

    Ant+Svn打包Web工程

    3. **Ant构建文件**:在项目根目录下,通常会有一个名为`build.xml`的文件,这是Ant的构建脚本。它定义了构建过程中的各个任务,如编译、测试和打包。例如,`build.xml`可能包含`javac`任务来编译Java源码,`jar`...

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

    Jenkins是一种开源的持续集成和...同时,编写和维护Ant构建脚本也是实现自动化构建过程的重要部分。通过上述的配置过程,构建起了一个完整的持续集成环境,能够帮助团队提高开发效率,减少集成错误,加快软件交付速度。

    Ant 整合Jenkins自动构建

    标题中的“Ant整合Jenkins自动构建”涉及到两个关键的开源工具——Apache Ant和Jenkins,它们在软件开发的持续集成(Continuous Integration, CI)流程中起着重要作用。 Apache Ant是Java平台上的一个构建工具,...

    ant相关-svn-分支

    在Ant中,构建脚本通常以XML格式编写,包含了一系列目标(target)和任务(task)。这些任务可以执行编译、打包、测试等操作。为了与SVN交互,我们需要引入`ant-contrib`库,它提供了一些额外的Ant任务,比如循环、...

Global site tag (gtag.js) - Google Analytics