在多人协作的项目中,我们常用的代码管理和版本控制系统估计就是SVN和Git了,针对SVN上的代码我们可以通过编写Ant脚本实现对SVN上的文件的管理,同时还可以实现自动从SVN下载代码并编译和发布到Tomcat中。在这里,普通的Ant脚本是不能胜任这项工作的,这时就需要用到一个辅助的项目svnant了。使用方式如下:
-
下载最新的svnant的jar包,并添加到Ant的lib目录下。下载链接:http://subclipse.tigris.org/svnant.html
-
使用svnant操作SVN上的文件示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
project
name
=
"test"
default
=
"commit"
basedir
=
"."
>
<
property
name
=
"svn-url"
value
=
"svn://192.168.1.100/xxxx/branches/T20160422"
/>
<
property
name
=
"svnant_dir"
value
=
"D:\\apache-ant-1.9.7\\lib"
/>
<
property
name
=
"svn.user"
value
=
"admin"
/>
<
property
name
=
"svn.password"
value
=
"admin"
/>
<
tstamp
>
<
format
property
=
"buildtime"
pattern
=
"yyyy-MM-dd-HH:mm:ss"
/>
</
tstamp
>
<
path
id
=
"svnant.classpath"
>
<!-- 定义一个PATH元素,告诉ANT 到哪找SVNANT的类库 -->
<
pathelement
location
=
"${svnant_dir}/svnant.jar"
/>
<!-- SVNANT顶层包 -->
<
pathelement
location
=
"${svnant_dir}/svnClientAdapter.jar"
/>
<!-- SVNANT 与SVN通讯的适配器包 -->
<
pathelement
location
=
"${svnant_dir}/svnjavahl.jar"
/>
<!-- SVNANT与SVN 通讯的JAVA BRIDGE包 -->
<!-- ... -->
</
path
>
<
typedef
resource
=
"org/tigris/subversion/svnant/svnantlib.xml"
classpathref
=
"svnant.classpath"
/>
<!--引用 svnantlib.xml ,其中定义了ANT的SVN命令,见下方详解。 -->
<
svnSetting
javahl
=
"false"
svnkit
=
"true"
username
=
"${svn.user}"
password
=
"${svn.password}"
id
=
"svn.settings"
/>
<!-- checkout -->
<
target
name
=
"checkout"
>
<
svn
refid
=
"svn.settings"
>
<!--引用上面定义的svnSetting ,新的设置SVN属性方式 -->
<
checkout
recurse
=
"true"
url
=
"${svn-url}"
destPath
=
"test1"
/>
</
svn
>
<
echo
message
=
"checkout success"
/>
</
target
>
<
target
name
=
"commit"
depends
=
"checkout"
>
<!-- 清空所有 -->
<
svn
refid
=
"svn.settings"
>
<
delete
>
<
fileset
file
=
"test1/*"
/>
</
delete
>
<
commit
dir
=
"test1"
message
=
"清空 ${buildtime}"
/>
</
svn
>
<
echo
message
=
"delete success"
/>
<!-- 复制文件 -->
<
copy
todir
=
"test1/addtest"
>
<
fileset
dir
=
"addtest"
/>
</
copy
>
<
echo
message
=
"copy success"
/>
<!-- 提交 -->
<
svn
refid
=
"svn.settings"
>
<
add
dir
=
"test1/addtest"
/>
<
commit
dir
=
"test1"
message
=
"测试提交 ${buildtime}"
/>
</
svn
>
<
echo
message
=
"commit success!"
/>
</
target
>
</
project
>
|
注:
-
关于Ant脚本的一些基础语法可以参考我的这篇文章:http://www.zifangsky.cn/444.html
-
如果想要了解更多的关于svnant的一些参数用法,可以参考这个网页:http://subclipse.tigris.org/svnant/svntask.html
-
针对从SVN上checkout下来的代码,如果想要编写Ant脚本实现自动化编译并发布到Tomcat中.
-
本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1790140,如需转载请自行联系原作者