使用SvnAnt结合svn进行项目构建
使用ant可以进行项目构建,而在svn环境下进行项目自动构建则需要使用svnant来对源码进行操作。本例以从svn服务器上签出代码,在本地编译、执行为例说明svnant的操作。要执行以上操作,需要安装ant、带命令行的svn客户端和svnant。使用TortoiseSVN不可以,因为他没有svn可执行文件。
建立的build.xml文件如下:
- <?xml version="1.0"?>
- <!-- Sample build file used to retrieve svnant's sources -->
- <project name="svn-test" basedir="."default="run">
- <!-- all properties are in build.properties -->
- <propertyfilepropertyfile="build.properties" />
- <!-- path to the svnantlibraries. Usually they will be located in ANT_HOME/lib -->
- <path id="project.classpath">
- <pathelementlocationpathelementlocation="${svnjavahl.jar}" />
- <pathelementlocationpathelementlocation="${svnant.jar}" />
- <pathelementlocationpathelementlocation="${svnClientAdapter.jar}" />
- </path>
- <!-- load the svn task-->
- <taskdefresourcetaskdefresource="svntask.properties" classpathref="project.classpath"/>
- <targetnametargetname="delete" depends="checkoutLatest">
- <deletedirdeletedir="bin" includes="*"/>
- <deletedirdeletedir="output" includes="*"/>
- </target>
- <targetnametargetname="compile" depends="delete">
- <javacdestdirjavacdestdir="bin" srcdir="src" includeantruntime="on"/>
- </target>
- <targetnametargetname="jar" depends="compile">
- <jardestfilejardestfile="output/hello.jar" basedir="bin"/>
- </target>
- <targetnametargetname="run" depends="jar">
- <javadirjavadir="bin" classname="hello" classpath="bin"/>
- </target>
- <targetnametargetname="checkoutLatest">
- <svnusernamesvnusername="${svnant.repository.user}"password="${svnant.repository.passwd}">
- <checkouturlcheckouturl="${svnant.latest.url}" revision="HEAD"destPath="." />
- </svn>
- </target>
- </project>
可以看出,上述文件最先开始执行checkout命令,从资源库中检出新的代码,随后执行删除命令,清除了output和bin文件夹中的内容,随后执行编译、打包命令,最后执行上述代码生成的最新结果。执行结果为:
以上代码引入了一个配置文件build.properties,其内容如下:
- svnant.version=1.0.0
- lib.dir=lib
- svnant.jar=${lib.dir}/svnant.jar
- svnClientAdapter.jar=${lib.dir}/svnClientAdapter.jar
- svnjavahl.jar=${lib.dir}/svnjavahl.jar
- svnant.latest.url=svn://192.168.195.54/hello/
- svnant.repository.user=gongqingkui
- svnant.repository.passwd="123"
上述文件定义了连接到SVN服务器的用户名密码和地址信息。
使用以上配置,再加上自动执行脚本,可以执行每日构建等工作。
Ps:在检出代码时,如果提示Cannot use javahl nor command line svn client,那么可能是因为没有svn可执行文件,或者javahl.jar文件导致。一般安装带命令行的svn客户端,或者将svnant下的javahl.jar拷贝到antd的lib下。本例中安装了subversion的服务器,他其中带有svn的可执行客户端。
相关推荐
ECSHOP专属建设 2020-11-13
xzjforDream 2020-09-23
fenggit 2020-09-15
起点 2020-08-17
leehbhs 2020-07-26
leehbhs 2020-07-04
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf
起点 2020-06-28
leehbhs 2020-06-20
dingqinghu 2020-06-16
dengweijunkedafu 2020-06-09
nebulali 2020-05-27
起点 2020-05-10
起点 2020-05-05
83520298 2020-05-04