本文转自 :http://hck.iteye.com/blog/1264150 感谢原作者分享
通过一番琢磨,参考网上些许资料以及Ant文档,将Ant在J2EE构建中常用的脚本整合了起来,实现了Ant从版本控制器(SVN/CVS/VSS)checkout项目源码, 编译编译打包,部署软件包到远程/本地服务器的整合,从此任何复杂的J2EE构建变得方便优雅...
现记录大致笔记如下:
分为两部分:
1.我的环境
2.文字大致叙述整合流程以及注意事项
3.贴脚本实例
一. 我的环境
JDK1.7/TOMCAT6.0/ANT1.8.2/SVN/CVS/SERVER-U
二:整合流程
1.下载并安装Ant,配置ANT_HOME,PATH;在命令行执行ANT -VERSION,查看版本号检查是否安装配置成功
2. 将ant从SVN checkout,上传FTP,启动Tomcat的依赖Jar分别加入进ant目录下地lib目录,具体为
A.SVN依赖jar: svnant.jar/svnClientAdapter.jar/svnjavahl.jar;可从这里下载(http://download.csdn.net/source/3544090)
B.FTP依赖Jar: commons-net-1.4.1.jar;可从这里下载(http://download.csdn.net/source/3060302)
C.Tomcat 依赖Jar:将Tomcat目录中lib目录下地catalina-ant.jar拷贝之ant目录下地lib目录
3.编写脚本(分段编写,并一一测试)
A.从SVN/CVS checkout项目
B.打包编译
C.部署软件包到远程服务器
(1) 通过FTP上传到远程服务器webapps目录:
注意事项:本人在远程服务器架设的ftp服务器是Server-U,设置Server-U账户权限时注意赋予账户写文件的权限以及访问需要的路径(可以为任意路径)
(2) FTP上传完毕后,启动Web application:
注意设置添加账户 <user username="admin" password="admin" roles="admin,manager"/>
三:脚本实例
<!-- svn下载,编译,打包,上传到ftp服务器,启动Web程序-->
1.Tomcat/svn/ftp等配置属性文件 ant.properties
webapp.name=antDemo
catalina.home=D:\Tomcat6.1
catalina.apps=D:\Tomcat6.1\webapps
#svn properties#
svn.url=svn://192.168.1.202/antDemo
svn.username=*****
svn.password=*****
#cvs properties#
#cvs.root=:pserver:***@192.168.8.27:2401/home/Functions
#cvs.password=*****
#cvs.checkout.dir=.
#tomcat properties#
tomcat.manager.url=http://localhost:9080/manager
tomcat.manager.username=*****
tomcat.manager.password=*****
#ftp properties#
ftp.server=192.168.1.202
ftp.password=*****
ftp.userid=*****
2.build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="${webapp.name}" default="start" basedir=".">
<!-- svn下载,编译,打包,上传到ftp服务器,启动Web程序-->
<property file="ant.properties" /> <!-- 引入Tomcat/svn/ftp等配置属性文件-->
<property name="complile.dir" location="${basedir}/bin/classes"/>
<property name="src.dir" value="${basedir}/src"/>
<property name="lib.dir" value="${basedir}/WebRoot/WEB-INF/lib"/>
<!-- =================================
clean files
================================= -->
<target name="cleanAll">
<delete dir="${basedir}" />
</target>
<!-- Ant svn Task Definition -->
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" />
<!-- =================================
SVN Checkout
================================= -->
<target name="svn.checkout" depends="cleanAll">
<mkdir dir="${basedir}/SVN"/>
<svn javahl="true" username="${svn.username}" password="${svn.password}">
<checkout url="${svn.url}" destPath="${basedir}/SVN"></checkout>
</svn>
</target>
<!-- =================================
CVS Checkout
================================= -->
<!--
<target name="initpass" depends="cleanAll">
<cvspass cvsroot="${cvs.root}" password="${cvs.password}" />
</target>
<target name="checkout" depends="initpass">
<cvs cvsroot="${cvs.root}" command="checkout" quiet="true" cvsrsh="ssh" package="${webapp.name}" dest="${cvs.checkout.dir}" />
<cvs cvsroot="${cvs.root}" command="checkout" quiet="true" cvsrsh="ssh" package="${webapp.name}" dest="${cvs.checkout.dir}" />
</target>
-->
<!-- =================================
target: compile the src
================================= -->
<target name="init">
<delete dir="${complile.dir}"/>
<mkdir dir="${complile.dir}"/>
</target>
<path id="complile.classpath">
<fileset dir="${catalina.home}/lib">
<include name="catalina*.jar"/>
</fileset>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="complile" depends="init">
<javac srcdir="${src.dir}" destdir="${complile.dir}">
<classpath path="${complile.dir}" />
<classpath refid="complile.classpath"/>
</javac>
</target>
<!-- =================================
target: deploy war
================================= -->
<target name="war" depends="complile">
<delete>
<fileset dir="." includes="**/*.war" />
</delete>
<war destfile="${webapp.name}.war" webxml="WebRoot/WEB-INF/web.xml">
<classes dir="${complile.dir}"/>
<fileset dir="WebRoot" id="dir">
<include name="**/*.*"/>
<exclude name="WEB-INF"/>
</fileset>
</war>
</target>
<!-- =================================
target: upload with ftp
================================= -->
<target name="upload" depends="war">
<ftp password="${ftp.password}"
server="${ftp.server}"
userid="${ftp.userid}"
remotedir="${catalina.apps}"
binary="true"
>
<fileset file="${basedir}/${webapp.name}.war"/>
</ftp>
</target>
<!-- Ant Tomcat Task Definition -->
<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask" />
<taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask" />
<taskdef name="remove" classname="org.apache.catalina.ant.RemoveTask" />
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask" />
<taskdef name="start" classname="org.apache.catalina.ant.StartTask" />
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask" />
<taskdef name="list" classname="org.apache.catalina.ant.ListTask" />
<!-- =================================
target: deploy_to_tomcat
================================= -->
<target name="deploy" depends="war">
<deploy url="${tomcat.manager.url}"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}"
path="/${webapp.name}"
war="file:${basedir}/${webapp.name}.war" />
</target>
<target name="undeploy">
<undeploy url="${tomcat.manager.url}"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}"
path="/${webapp.name}"/>
</target>
<target name="remove">
<remove url="${tomcat.manager.url}"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}"
path="/${webapp.name}"/>
</target>
<target name="reload">
<reload url="${tomcat.manager.url}"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}"
path="/${webapp.name}"/>
</target>
<target name="start" depends="upload">
<start url="${tomcat.manager.url}"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}"
path="/${webapp.name}"/>
</target>
<target name="stop">
<stop url="${tomcat.manager.url}"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}"
path="/${webapp.name}"/>
</target>
<target name="list">
<list url="${tomcat.manager.url}"
username="${tomcat.manager.username}"
password="${tomcat.manager.password}"/>
</target>
<!-- =================================
target: tomcat shell
================================= -->
<target name="tomcat.start">
<java jar="${catalina.home}/bin/bootstrap.jar" fork="true">
<jvmarg value="-Dcatalina.home=${catalina.home}"/>
</java>
</target>
<target name="tomcat.stop">
<java jar="${catalina.home}/bin/bootstrap.jar" fork="true">
<jvmarg value="-Dcatalina.home=${catalina.home}"/>
<arg line="stop"/>
</java>
</target>
<target name="tomcat.debug">
<java jar="${catalina.home}/bin/bootstrap.jar" fork="true">
<jvmarg value="-Dcatalina.home=${catalina.home}"/>
<jvmarg value="-Xdebug"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"/>
</java>
</target>
</project>
分享到:
相关推荐
SVN+ant 服务器代码打包编译流程详解,内含详细安装以及操作说明build.xml+build.properties详解,可以直接修改路径后打包编译SVN代码。
清除SVN、CVS版本控制信息,支持此文件后,在鼠标右键将多出Delete CVS/SVN Folders选项。
ant 脚本从svn上取代码打包代码全,同时包括相关的jar包
旨在提供一个开放易用的软件平台,使软件的持续集成变成可能,通过Jenkins和Ant以及SVN整合,可以比较容易的实现通过SVN获取源代码更新,然后应用Ant自动编译打包,然后部署到相应的服务器。 以下简要说明Jenkins+...
NULL 博文链接:https://lindows.iteye.com/blog/512414
svn本地自动部署与远程部署web应用代码方案,post-commit,update.php
利用脚本自动获取svn代码,并自动编译代码。提供了自动部署的方案。
NULL 博文链接:https://q-wong.iteye.com/blog/665927
Windows下实现的,git的自动拉取推送,svn的自动拉取和推送,maven自动编译,angular的自动打包发布,bat脚本
ant打包工程的配置文件,包括从svn上自动下载代码,自动打包等
svn服务器端下载svn服务器端下载svn服务器端下载
简要cvs与svn的比较 1 对重命名、删除文件的支持 cvs:不支持本地文件重命名提交 删除分remove和erase两种前者把本地和库中文件都删除 后者只是删除本地文件 不能删除文件夹 svn:支持文件重命名提交系统会提示...
利用ant脚本 自动构建svn增量/全量 系统程序升级包 标签: antsvn自动化测试发布 分类: ant 不会用ant打包、部署项目的工程师,不是一个好程序员(测试) 副标题:利用ant脚本 自动构建svn增量/全量 系统程序...
介绍了SVN-Importer和CVS2SVN两种从CVS迁移到SVN的两种方法,并把SVN-Importer和CVS2SVN软件打包在内。下载后直接可以使用。
ant操作SVN的jar包 ant SVN联携
简易的SVN代码下载器,同时支持GIT,可以完整实现SVN/GIT的checkout,并演示如何解析svn协议的XML,以及下载项目,方便想要深入了解SVN这类代码管理系统的构造以及二次开发的朋友,非常小巧作为工具用也是不错的
svn 客户端 服务器 打包下载 svn-1.4.5-setup.exe TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi
自己总结的svn与cvs对比,概括总结 概括总结
NULL 博文链接:https://shihuan830619.iteye.com/blog/1820428