我有以下标记:
<?xml version="1.0" ?>
<project name="SampleBuild" default="compile" basedir=".">
<property name="SvnAntDir" value="C:/Program Files/Apache/svnant-1.2.1/doc" />
<property name="src" value="_src_" />
<property name="build" value="_build_"/>
<property name="dist" value="${build}/_jars_" />
<path id= "svnant.classpath" >
<fileset dir= "${SvnAntDir}" >
<include name= "*.jar" />
</fileset>
</path>
<target name="pre-cleanup">
<delete dir="${src}" />
<delete file="${dist}/Project.jar" />
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${build}/_classes_/sevgok/" />
</delete>
<mkdir dir="${src}" />
<tstamp />
</target>
<target name="checkout" depends="pre-cleanup">
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" />
<svn>
<checkout url="svn://p-subversion/Project/trunk" revision="HEAD" destPath="${src}" />
</svn>
</target>
<target name="compile" depends="checkout">
<javac srcdir="${src}" destdir="${build}/_classes_" debug="on" debuglevel="lines,vars,source">
<classpath>
<pathelement path="${classpath}" />
<fileset dir="./_libs_">
<include name="*.jar" />
<include name="*.zip" />
</fileset>
</classpath>
</javac>
</target>
</project>
尝试构建时出现问题。下面是错误信息:
checkout: [svn] <Checkout> started ...
[svn] svn: svn://p-subversion/Project/trunk` doesn't exist
[svn] svn: svn://p-subversion/Project/trunk` doesn't exist
[svn] <Checkout> failed!
Build FAILED
C:build.minimal.xml: (line of code which points to <svn> openning tag): Can't checkout.`
同时可以使用url与Tortoise SVN客户端进行签出。
帮助!
编辑
我试着在构建时使用-v键,得到以下结果:
Caused by: org.tigris.subversion.svnclientadapter.SVNClientException: org.tigris
.subversion.javahl.ClientException: svn: URL 'svn://p-subversion/Project/trunk
' doesn't exist
编辑
除了SvnAnt还有其他选择吗?如果它也有很好的文档,那就太好了。
感谢编辑
所以对我来说有效的代码是:
<target name="checkout" depends="pre-cleanup">
<exec dir="${basedir}" executable="svn" failonerror="true">
<arg line="checkout -r ${revision} ${SvnUrl} ${src}" />
</exec>
</target>
其中${SvnUrl}
是我之前使用的URL
如果svnant
不工作,你可以从命令行执行svn:
<exec executable="svn" dir="DIRECTORY_WHERE_COMMAND_EXECUTES">
<arg line="checkout svn://p-subversion/Project/trunk $src"/>
</exec>
你必须安装svn命令行客户端。确保将客户端的bin
-Directory添加到PATH
.
但是要注意安装与龟客户机相同的客户机版本。如果它们不匹配,它们将使另一个工作副本无法访问。
p-subversion
应该是什么?与HTTP url一样,SVN的url也以主机名开头。如果p-subversion
不是指向您的计算机的主机名,那么签出将失败。也许它应该看起来更像这样?
svn://localhost/p-subversion/Project/trunk
[edit]如果是Windows共享…
file://p-subversion/Project/trunk
svn://
URL假定了一个主机名,但在共享的情况下,操作系统的某些其他部分已经在协商TCP连接。参考其他文件夹