基于ant和svnkit的WebProject增量打包工具(一)
?????? 然后,就是根据项目实际情况,配置编译文件,在工具中有个编译配置实例,直接参考这个,再结合实际项目做好配置就可以了。配置文件有两个,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_srcconfigSrcPath=appCode/config#==========Web项目编译配置信息END==============
?
?? 配置如上两个文件,就可以开始执行增量编译了
?? 在dos命令行执行如下命令
????
?? 执行的结果分析如下,具体效果到pakagePath看看是否导出文件即可知道
??
?
?
下一部分将打算介绍该增量打包工具的实现机制。