- 浏览: 492990 次
- 性别:
- 来自: xiamen
文章分类
最新评论
-
陈乐鹏:
你这个下载要怎么玩?我这里老提示未安装!
[转]使用ScriptX控件进行Web打印总结 -
zqb666kkk:
博主有示例代码吗
cxf ws-security 加密和签名的实现 -
mclin0704:
你好,请问WSDL2Java 可以用java实现吗?
Java2WSDL之java实现 -
hubiao0629:
楼主,这个文件会有不兼容的问题把。
mysql5忘记密码后的处理方法 -
zhaoyubetter:
OK,可以试试!多谢楼主
后台管理界面收集
团队管理中,当项目非常多,而且发布频繁,手动发布往往非常繁琐,决定用自动化处理。
采用ant +svn+svnant
在网络上参考很多人的处理,组合成对自己比较实用的。
准备环境:
1、安装svn client 这个就不多说了。
2、安装ant,在这里我采用ant 1.8.3版本:http://ant.apache.org/
官网上下载zip 解压缩,并配置环境变量。
3、下载svnant ,并解压缩 ,把对应的lib\jar包放入 ant lib 包中。
下载地址: http://subclipse.tigris.org/files/documents/906/49042/svnant-1.3.1.zip
这步很关键,不然svn命令运行不了!
思路:
1、固定一个目录,专门做发布目录,根据不同项目,在期底下建立与项目名称相同的目录。
2、建立build等目录,打成war包后删除对应的build包等操作
3、自动发布到tomcat
以下代码实现的是J2EE web工程打包发布
<?xml version="1.0" encoding="UTF-8"?> <project name="deploy" default="autodeploy" basedir="."> <property environment="env" /> <property name="projectName" value="svnant" /> <property name="temporary.dir" value="D:/SVNTest/${projectName}"/> <property name="deployVersion.dir" value="${temporary.dir}/deployVersion"/> <property name="tomcat.home" value="d:/apache-tomcat-6.0.32"/> <property name="ant-lib.dir" value="F:/apache-ant-1.8.3/lib"/> <property name="svn.url" value="http://subclipse.tigris.org/svn/subclipse/trunk/svnant/"/> <property name="svn.name" value="guest"/> <property name="svn.password" value=""/> <tstamp> <format property="deploy.time" pattern="yy-MM-dd HH.mm" /> </tstamp> <delete dir="${temporary.dir}" /> <mkdir dir="${temporary.dir}" /> <path id="svnant.dir"> <fileset dir="${ant-lib.dir}"> <include name="ganymed.jar" /> <include name="jna.jar" /> <include name="svnant.jar" /> <include name="svnClientAdapter.jar" /> <include name="svnjavahl.jar" /> <include name="svnkit.jar" /> </fileset> </path> <!-- define the svn task--> <taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.dir" /> <!-- prepare for the checking out:clean the directory --> <target name="prepare" description="Prepare the dirs for the task"> <delete dir="${temporary.dir}/${projectName}" /> <mkdir dir="${temporary.dir}/${projectName}" /> </target> <target name="checkout" depends="prepare"> <echo>+=========checkout start============+</echo> <echo>+ +</echo> <echo>+ +</echo> <svn username="${svn.name}" password="${svn.password}" javahl="false" failonerror="false" svnkit="true"> <checkout url="${svn.url}" revision="HEAD" destPath="${temporary.dir}/${projectName}" /> </svn> <echo>+ +</echo> <echo>+========= checkout end ============+</echo> </target> <target name="ant_app" depends="checkout"> <echo>+ ======================== +</echo> <echo>+ +</echo> <echo>+ anting application to war and ear +</echo> <echo>+ +</echo> <echo>+ ======================== +</echo> <ant dir="./" antfile="build.xml" inheritall="off"/> </target> <target name="mv_to_pack" depends="ant_app"> <delete dir="${deployVersion.dir}\${deploy.time}" /> <mkdir dir="${deployVersion.dir}\${deploy.time}" /> <move file="${temporary.dir}/${projectName}.war" todir="${deployVersion.dir}/${deploy.time}" /> </target> <target name="execute" depends="mv_to_pack"> </target> <!--shutdown--> <target name="shutdown" description="========shutdowntomcat==========="> <exec executable="${tomcat.home}/bin/shutdown.bat" failonerror="false"> </exec> <sleep seconds="1"/> <delete file="${tomcat.home}/webapps/${projectName}.war"> </delete> <delete dir="${tomcat.home}/webapps/${projectName}"> </delete> </target> <!--startup--> <target name="startup" depends="shutdown" description="========startuptomcat==========="> <copy file="${deployVersion.dir}/${deploy.time}/${projectName}.war" todir="${tomcat.home}/webapps" /> <sleep seconds="3"/> <exec executable="${tomcat.home}/bin/startup.bat" failonerror="false"> </exec> </target> <!--autodeploy--> <target name="autodeploy" depends="execute,startup"> <delete file="${temporary.dir}/${projectName}"> </delete> </target> </project>
<?xml version="1.0" encoding="UTF-8"?> <project name="ear" default="deploy" basedir="."> <property environment="env" /> <property name="projectName" value="svnant" /> <property name="temporary.dir" value="D:/SVNTest/${projectName}"/> <property name="builder.dir" value="${temporary.dir}/builder" /> <property name="project.dir" value="${temporary.dir}/${projectName}" /> <property name="src.dir" value="${builder.dir}/src" /> <property name="WebRoot.dir" value="${builder.dir}/WebRoot" /> <property name="classes.dir" value="${WebRoot.dir}/WEB-INF/classes" /> <property name="lib.dir" value="${WebRoot.dir}/WEB-INF/lib" /> <path id="build.classpath" description="complie 's classpath"> <fileset dir="${temporary.dir}/${projectName}/WebRoot/WEB-INF/lib"> <include name="*.jar" /> </fileset> <!-- junit jar --> <fileset dir="E:\eclipse\plugins"> <include name="org.hamcrest.core_1.1.0.v20090501071000.jar" /> </fileset> <fileset dir="E:\eclipse\plugins\org.junit_4.8.2.v4_8_2_v20110321-1705"> <include name="junit.jar" /> </fileset> <pathelement location="${classes.dir}" /> </path> <target name="copy-files" description="copy,java files"> <delete dir="${builder.dir}" /> <mkdir dir="${builder.dir}" /> <mkdir dir="${classes.dir}" /> <mkdir dir="${lib.dir}" /> <!-- <mkdir dir="${WebRoot.dir}/apps" /> --> <mkdir dir="${src.dir}" /> <copy todir="${src.dir}" overwrite="YES"> <fileset dir="${project.dir}/src" /> </copy> <copy todir="${WebRoot.dir}" overwrite="yes"> <fileset dir="${temporary.dir}/${projectName}/WebRoot" excludes=".svn" /> </copy> </target> <!-- compile file to share lib --> <target name="compile" depends="copy-files"> <mkdir dir="${classes.dir}" /> <javac fork="true" memoryInitialSize="256m" memoryMaximumSize="500m" srcdir="${src.dir}" destdir="${classes.dir}" includes="**" encoding="UTF-8" debug="true"> <classpath refid="build.classpath" /> </javac> <copy todir="${classes.dir}"> <fileset dir="${src.dir}" excludes="**/*.java" /> </copy> <!-- resources --> <copy todir="${classes.dir}"> <fileset dir="${temporary.dir}/${projectName}/config"/> </copy> </target> <!-- create the war --> <target name="web-war" depends="compile" description="create war"> <war destfile="${builder.dir}/../${projectName}.war" webxml="${WebRoot.dir}/WEB-INF/web.xml"> <fileset dir="${WebRoot.dir}"> </fileset> </war> </target> <!-- create the ear --> <target name="ear" depends="web-war" description="create ear"> <!-- <ear destfile="${builder.dir}/../${projectName}.ear" appxml="${basedir}/META-INF/META-INF/application.xml" duplicate="preserve"> <fileset dir="${basedir}/META-INF" includes="**/*.*" /> <fileset dir="${builder.dir}/.."> <include name="${projectName}.war" /> </fileset> </ear> --> </target> <target name="deploy" depends="ear"> <echo>+ ===================================================== +</echo> <echo>+ +</echo> <echo>+ Building Complete, Cleaning Temporary Files...... +</echo> <echo>+ +</echo> <echo>+ ===================================================== +</echo> <delete dir="${builder.dir}"> </delete> </target> </project>
bat :
@echo off del deploy.log call ant -f ./deploy.xml -debug -l deploy.log start deploy.log
OK ,搞定!
- svnant-1.3.1.zip (3.2 MB)
- 下载次数: 18
- apache-ant-1.8.3-bin.zip (7.7 MB)
- 下载次数: 6
发表评论
-
Mac 安装maven
2017-03-08 23:05 465Mac OS X 安装Maven: 下载 Maven ... -
MAC 安装eclipse svn 插件
2017-03-08 22:48 649参考此链接: http://www.cnblogs.com ... -
tomcat 单机多实例
2015-07-08 09:06 840tomcat 部署单机多实例,实现每个实例都是跟 ... -
java 分块上传
2014-05-30 14:56 1437java 分块下载 java多线程分块上传并 ... -
redmine 插件管理
2013-12-26 16:11 1644redmine plugn work Time_工数 ... -
bat class to java Jad反编译
2013-12-04 14:58 1187反编译所使用的工具是jad.exe 有时候需要批量 ... -
windows 2008上Jira 5.0的安装、破解及汉化
2012-04-13 09:58 5497项目管理中应用JIRA做缺陷管理,网络上面大部分是基于Linu ... -
DatabaseMetaData getExportedKey() 无法获取信息
2012-03-14 17:26 1183在jdbc DatabaseMetaData.getExpo ... -
Column 'IS_AUTOINCREMENT' not found
2012-03-14 10:41 2465java.sql.SQLException: Column ' ... -
java 递归加减法
2012-01-12 17:30 1605有时候设计到list map 做交集,并集等操作。 可以参考 ... -
java 发送mail
2011-12-06 09:19 1519java 发送mail,很久之前整过,没做记录,这次整理下做个 ... -
java ant 压缩与解压缩
2011-09-15 16:05 2438以下本文来自: http://blog.csdn.net/l ... -
Java源码中的发现:快速判断一个int值是几位数
2011-07-22 15:57 4021判断一个int值是几位数,要是我自己实现,估计又会想到除法和模 ... -
Weblogic 部署SSL
2011-07-15 16:14 930weblogic 部署SSL 整理网路上的 一部分由 ... -
CXF客户端配置请求超时限制
2011-07-13 17:14 5123在用cxf 开发webservice应用时,客户端老报 ... -
Weblogic的基础优化!
2011-07-04 16:43 1273由于项目需要,最近研究了一下系统优化。 系统性能优化是系 ... -
判断偶数几种方法性能
2011-06-24 17:06 1349判断一个数是否偶数,在编程中经常用的,大部分人都用的是 ... -
java读取文件夹下的所有文件夹和文件
2011-05-18 10:07 1415import java.io.FileNotFoundExce ... -
ThreadLocal的使用场景
2011-04-11 17:24 1097在Java的多线程编程中,为保证多个线程对共享变量的安全访问, ... -
Java 进制之间互相转换
2011-03-30 13:34 1276public static void main(String[ ...
相关推荐
【Ant脚本自动构建SVN增量】是一种高效且节省资源的软件开发实践,它使得开发和测试团队能够自动化处理从代码提交到构建、打包、再到部署的整个过程。使用Ant,一个基于XML的构建工具,可以创建可重复执行的脚本来...
利用ant,自动化发布工程。具体过程包括:备份之前发布的工程,从svn checkout工程,编译工程,打包工程,关闭web服务器,删除已发布在web服务器的工程,复制打包的工程到web服务器,解压工程,启动web服务器。
本文旨在介绍如何利用Ant结合SVN来自动化制作发布版本的过程。 #### 二、Ant简介 Ant 是一款开源的Java构建工具,其全称为“Another Neat Tool”。它主要用于构建、测试和部署Java应用程序。Ant使用XML文件来定义...
在本文中,我们将详细介绍如何配置Ant、JUnit和SVN,这三个工具在Java开发中的重要性以及它们的安装过程。 首先,Ant是一个基于Java和XML的构建工具,它的主要功能是管理和自动化项目的构建过程。Ant通过一个名为...
Jenkins是一种开源的持续集成和持续交付的自动化服务器,可以帮助开发者快速发现和解决缺陷,提高软件质量并缩短发布周期。SVN(Subversion)是一种版本控制系统,用于管理源代码的版本历史,支持开发者团队协作开发...
总的来说,Ant和SVN的结合使用,极大地提升了开发团队的效率,尤其是在多分支的项目中,能够实现代码的高效管理和自动化的构建流程。正确配置和使用这两个工具,能帮助开发者专注于代码编写,而非手动的构建和版本...
标题和描述中提到的“自动获取svn代码并且编译发布”是一种常见的持续集成(CI)实践,它涉及自动化从版本控制系统获取源代码、构建应用程序、并进行发布的过程。以下是这个流程涉及的关键知识点: 1. **Subversion ...
Ant提供了一系列内置的SVN任务,这些任务可以帮助开发者轻松地执行SVN操作,如更新、提交、分支、合并等。这些任务都是通过调用SVN客户端工具来实现的,因此需要确保已经安装了SVN客户端并且可以被Ant访问到。 ####...
两者结合可以实现项目的自动化构建、部署和更新,大大提升了开发效率。现在我们来深入探讨一下"svn+ant自动下载、部署、上传"这一主题。 首先,Subversion(svn)的主要功能是跟踪和控制文件及目录的变更。它允许...
6. **自动化脚本**:为了实现自动化,开发者可能会编写批处理脚本或者使用构建工具(如Ant、Maven、Gradle等)的插件,来自动执行上述步骤,特别是当项目很大或者频繁发布更新时。 标签中的“源码”表明了这个过程...
这样可以在SVN提交后自动触发构建和部署任务,从而实现真正的无人值守自动化。 #### 总结 通过上述步骤,我们可以有效地实现SVN与WebLogic服务器之间的自动同步。这不仅可以显著减少开发人员的手动操作,还能提高...
总之,Ant作为Java开发中的重要工具,提供了强大的构建能力和灵活性,能够帮助开发者高效地管理项目生命周期,实现自动化构建。结合Subversion等版本控制系统,更可以实现版本控制与构建的无缝集成,为团队协作提供...
第一种方法使用Jenkins的SSH插件连接远程主机,实现代码发布和回滚。第二种方法使用Jenkins的SVN插件连接SVN版本控制系统,实现代码回滚。 Jenkins持续集成意义 Jenkins的持续集成意义在于它可以自动化构建、测试...
SVNant是一个用于Apache Ant的Subversion(SVN)客户端库,它允许你在Ant构建脚本中执行Subversion操作,如版本控制的检查、提交、更新和合并。这对于版本控制集成到持续集成流程中非常有用,开发者可以在构建过程中...
- **编写目的**:本文档旨在指导软件发布人员如何正确安装与配置Apache Ant,解决在安装与使用过程中可能遇到的问题,确保能够顺利地使用Ant对Flex/Java工程项目进行自动化编译与打包。 #### 二、环境说明 - **Ant...
- **Ant**:另一个强大的构建工具,支持XML构建脚本,用于自动化软件编译过程。 - **Commons**:一系列实用的Java类库,涵盖字符串处理、数学运算等多个领域。 - **Tomcat**:一款轻量级的Servlet容器,也是Java Web...