`
903452746
  • 浏览: 7401 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

基于ant和svnkit的WebProject增量打包工具(一)

    博客分类:
  • Web
阅读更多


    WebProject增量打包工具在网上搜了好久,能搜到的只是打包思路,和一些零零散散的程序。既然找不到,那么就决定自己写一套增量打包工具,经过几天的摸索,终于整理出了一套结合SVN版本控制,依赖ANT的编译功能来实现WebProject的增量打包工具,先发出来给大家分享下。

      在附件中,已经上传了该工具,下面就讲讲它的使用方法。

      首先,下载工具后,解压到任意文件夹下。接下来就得为该工具配置环境变量(其实不配也行,就是以后调用麻烦点就是了^@^),比如我将其解压到E盘的根目录下,那么就得在window的环境变量中的path中配置上路径:“E:\apache-ant-1.9.2-精简版本\bin”,这样做的目的就是为了能够在dos命令下,直接调用ant的指令。

配置后,进入dos控制台,输入如下图的指令,出现红框处的提示的话,表示配置成功!

 

       然后,就是根据项目实际情况,配置编译文件,在工具中有个编译配置实例,直接参考这个,再结合实际项目做好配置就可以了。配置文件有两个,build.xml和build.properties.

       先说说build.xml内容,其实这个文件一般不用做什么修改,就可以适应目前为止的Web项目,

       直接按照序号阅读配置文件的说明,做相应修改就行

<?xml version="1.0"?>
<!--1.设置basedir WebProjiect的路径,如果是.的话,就是web项目的路径是build.xml的父级路径-->
<project name="FWD_SERVER" basedir="." default="main">
        <!--2.webProject的具体编译属性的设置文件,一般和build.xml文件放在同一个目录就行,里面可以配置项目的SVN信息,导出SVN的增量文件的路径啥的!-->
	<property file="build.properties" />	
        <target name="main" depends="packge">
	</target>
        <!--ant编译的支持jar-->
	<path id="supportjar">
		<fileset dir="${supportjarPath}/extlibs">
			<include name="**/*.jar" />
		</fileset>
	</path>
	<!--WebProject编译的支持jar-->
	<path id="WebCompileClasspath">
		<filelist dir="${catalinaPath}/lib">
			<file name="servlet-api.jar" />
		</filelist>
		<fileset dir="${libsPath}">
			<include name="**/*.jar" />
		</fileset>
	</path>
	<!--从SVN中导出版本差异文件的target--> 
	<target name="exportSvnDiff">
		<taskdef name="svn" classpathref="supportjar" classname="cn.com.lowe.svnkit.SVNAntTask" />
		<mkdir dir="${pakagePath}" />
		<svn svnUrl="${svnUrl}" preVersion="${preVersion}" version="${version}" username="${username}" password="${password}" desDir="${pakagePath}" exportMode="${exportMode}">
		</svn>
	</target>
	<!--WebProject全量编译target--> 
	<target name="compile">
		<delete dir="${classesPath}" />
		<mkdir dir="${classesPath}" />
		<javac classpathref="WebCompileClasspath" destdir="${classesPath}" includeantruntime="false" encoding="utf-8" optimize="true">
			<!--3.需要编译的源码,源码文件夹个数增加,这边也要相应增加-->
			<src path="${srcPath}" />
			<src path="${configSrcPath}" />
		</javac>

		<copy todir="${classesPath}" verbose="true">
			<!--4.需要拷贝的源码,即源码目录下的非.java文件,源码文件夹个数增加,这边也要相应增加-->
			<fileset dir="${configSrcPath}">
				<not>
					<filename name="**/*.java" />
				</not>
			</fileset>
			<fileset dir="${srcPath}">
				<not>
					<filename name="**/*.java" />
				</not>
			</fileset>
		</copy>
	</target>
	<!--根据SVN的差异文件导出相应的差异classes的target--> 
	<target name="packge" depends="exportSvnDiff,compile">
		<taskdef name="javacCopy" classpathref="supportjar" classname="cn.com.lowe.svnkit.JavacCopyTask" />
		<javacCopy  classesFolder="${classesPath}" exportDir="${pakagePath}">
			<!--5.源码中的增量目录,根据目录中的文件,从相应的 编译目录拷贝出编译文件到打包文件的目录下,源码文件夹个数增加,这边也要相应增加-->
			<copydir path="${srcPath}" />
			<copydir path="${configSrcPath}" />
		</javacCopy>
	</target>
</project>

    下一个就是build.properties ,build.xml的配置属性都是从该配置信息中获取的,继续按照序号阅读,做好配置就行

   

#==========ANT编译配置BEGIN================
#增量打包支持jar包路径
#1.增量编译工具保存的路径,如E:\apache-ant-1.9.2-精简版本,主要是为了ant命令配置相应的jar包支持
supportjarPath=E:/apache-ant-1.9.2
#打包文件导出路径
#2.增量打包后,导出的文件保存路径
pakagePath=D:\\svn
#tomcate路径,用于导入servlet.jar,如果项目中有servlet-api.jar,不配置也行
#3.tomcate服务器,weblogic服务器的路径,目录是为了给WebProjiect提供servlet-api.jar的支持,假设你将servlet-api.jar拷贝到WebProject的lib下面的话,可以不用填写
catalinaPath=E:\\workspace_lowe\\tomcatServer
#==========ANT编译配置END==================
#==========SVN导出配置信息BEGIN==============
#svnURL地址
#4.项目的SVN地址,为了导出差异文件
svnUrl=https://zhengjin/svn/android/android_plugins/
#5.svn登录名
username=lowe
#6.svn登录密码
password=000000
#7.导出文件模式 1:清空导出目录已存在的文件,再导出新文件 2:覆盖导出目录,不清空已存在的文件 3:文件非空,提示导出异常
exportMode=1


#8.导出的起始版本号
preVersion=12348
#9.导出的截止版本号,导出这两个版本号之间的差异文件
version=12350
#==========SVN导出配置信息END==================
#==========Web项目编译配置信息BEGIN==============
#9.编译文件存放目录-相对于basedir的路径
classesPath=mobile/WEB-INF/classes
#10.项目依赖的包路径-相对于basedir的路径,如果lib中有servlet-api.jar,就可以配置tomcat和weblogic服务器
libsPath=mobile/WEB-INF/lib
#11.项目编译源码路径-相对于basedir的路径,有时候源码路径有多个,可以配置多个源码路径属性,不过别忘了在build.xml处相应位置添加新增的源码路径
srcPath=appCode/mobile_src
configSrcPath=appCode/config
#==========Web项目编译配置信息END==============

 

   配置如上两个文件,就可以开始执行增量编译了

   在dos命令行执行如下命令

    

   执行的结果分析如下,具体效果到pakagePath看看是否导出文件即可知道

  

 

 

下一部分将打算介绍该增量打包工具的实现机制。

  • 大小: 21.3 KB
  • 大小: 2.1 KB
  • 大小: 56.9 KB
  • 大小: 56.7 KB
分享到:
评论

相关推荐

    一个基于svnkit的简单增量发布工具

    【标题】:“一个基于svnkit的简单增量发布工具” 这个标题揭示了我们即将探讨的知识点是关于使用SVNKit库创建一个能够实现增量发布的工具。SVNKit是一个强大的Java库,它提供了对Subversion(SVN)版本控制系统...

    javaweb工程自动增量发布小工具

    JavaWeb工程自动增量发布小工具是一种实用的自动化部署解决方案,尤其适用于持续集成和持续交付的环境中。该工具利用了SVNKit库来与Subversion(SVN)版本控制系统交互,通过对SVN日志(log)的分析,识别出自上次...

    svnkit插件开发包 支持Java开发svn一键打包

    SVNKit是一款纯Java实现的Subversion(SVN)客户端库,它允许开发者在Java应用程序中直接集成SVN功能,无需依赖任何本地SVN客户端。这个压缩包提供的"svnkit-1.10.6"是SVNKit的一个版本,包含了支持Java开发的SVN...

    svn增量包工具类

    你还在为svn打增量包发愁? svn 增量包工具类

    svnkit-1.8.0.zip

    SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统。 这不是一个开源的类库,但你可以免费使用。 通过SVNKit,你可以在SVN上开发出自己的应用

    svnkit 手册

    SVNKit 是一个基于 Java 语言的 Subversion 客户端库,提供了一个灵活的方式来访问 Subversion 版本控制系统。下面是 SVNKit 手册的详细介绍: SVN 快速入门 SVNKit 手册的第一部分是 SVN 快速入门,旨在帮助...

    SVNkit的Jar包 和实例代码

    标题中的“SVNkit的Jar包”指的是包含SVNkit库的Java Archive(JAR)文件,这是一个包含了编译好的类和资源的归档文件,可以被Java虚拟机直接加载运行。这些JAR包通常包含了SVNkit的所有必需组件,包括核心库、依赖...

    SVNKit开发的Demo

    SVNKit是一款强大的Java库,用于与Subversion(SVN)版本控制系统进行交互。这个"SVNKit开发的Demo"是展示如何利用SVNKit在Java应用中实现SVN的基本功能,如检出(Checkout)和文件差异对比(Compare)。通过这个...

    svnkit帮助文档API+SVNKit实例+jar包

    总结来说,这个压缩包为开发者提供了一个全面的SVNKit学习和开发工具包,涵盖了理论知识、实践操作和具体示例。通过深入研究和理解其中的内容,开发者可以熟练地利用SVNKit在Java项目中实现版本控制功能,从而提升...

    SVNKit实例 + jar包 + SVNKit API

    在这个实例中,我们拥有一个完整的项目,包含了SVNKit的使用示例,可以直接导入并运行,这对于学习和理解如何在Java应用中利用SVNKit进行版本控制非常有帮助。 一、SVNKit基本操作 1. **初始化仓库连接**:通过`SVN...

    svnkit帮助文档API

    这个“svnkit帮助文档API”是一个离线版的资源,提供了详细的信息来帮助开发者理解和使用SVNKit库。下面将详细介绍SVNKit的主要组件、功能以及如何利用其API进行开发。 1. SVNKit核心组件: - SVNClientManager:...

    svnkit-1.7.11

    5. **API接口**:SVNKit提供了一系列丰富的API,包括但不限于`SVNClientManager`(管理SVN客户端操作)、`SVNRepository`(与SVN服务器通信)、`SVNWCClient`(处理工作拷贝操作)和`SVNRevision`(表示版本信息)。...

    SVNKit1.7.9

    这个版本的SVNKit是一个重要的更新,提供了对Subversion 1.7.x版本协议的支持,同时也包含了一些性能优化和错误修复。 首先,让我们深入了解一下SVNKit。SVNKit是Subversion的一个客户端库,它完全用Java编写,这...

    svnkit-demo.rar

    SVNKit 是一个纯 Java 实现的 SVN 客户端库,允许开发者在 Java 应用程序中集成 SVN 功能,而无需依赖外部的 SVN 客户端工具。 描述中提到的操作包括: 1. **版本号对比**:在 SVN 中,每个文件和目录都有一个唯一...

    svnkit1.8.15

    SVNKit是一个强大的Java库,专门用于与Subversion(SVN)版本...总的来说,SVNKit 1.8.15是一个强大的工具,让Java开发者能够无缝地集成Subversion版本控制功能到他们的应用程序中,从而高效地管理源代码版本和协作。

    SVNKIT Java

    总之,SVNKit是Java开发者集成Subversion的强大工具,它提供了一整套完善的API,使得在Java应用中实现版本控制变得轻松便捷。通过熟练掌握SVNKit的使用,开发者可以更好地管理和协同他们的代码库,提升开发效率和...

    svnkit英文api

    SVNKit是一个强大的Java库,它实现了Subversion(SVN)版本控制系统的主要功能,使得开发者能够在Java应用程序中轻松地处理版本控制操作。这个压缩包文件包含的是SVNKit的英文API文档,对于那些无法访问互联网或者...

    java实现svn,svnkit框架的简单应用

    SVNKit不仅提供了命令行工具的功能,还支持通过编程接口(API)进行复杂操作,如创建、更新、提交、回滚、分支和合并等。 二、基础操作 1. **初始化仓库**:使用SVNKit可以创建新的Subversion仓库,这涉及到设置...

Global site tag (gtag.js) - Google Analytics