ANT结帐任务失败

时间:2011-12-20 09:59:41

标签: java svn ant build task

我有以下标记:

<?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.`

同时可以使用网址与Tortoise SVN客户端结账。

帮助!

修改

我在构建时尝试使用-v key并获得以下内容:

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}与我之前使用的网址相同。

2 个答案:

答案 0 :(得分:2)

如果svnant根本不起作用,你可以从命令行执行svn:

<exec executable="svn" dir="DIRECTORY_WHERE_COMMAND_EXECUTES">
  <arg line="checkout svn://p-subversion/Project/trunk $src"/>
</exec>

您必须安装svn command line client。确保您将bin - 客户的目录添加到PATH 但要注意安装与龟客户端相同的客户端版本。如果它们不匹配,它们将使另一个工作副本无法访问。

答案 1 :(得分:0)

p-subversion应该是什么? SVN URL与HTTP URL一样,以主机名开头。如果p-subversion不是指向您计算机的主机名,则结帐将失败。也许它看起来应该更像这样?

svn://localhost/p-subversion/Project/trunk

[edit]如果是Windows共享......

file://p-subversion/Project/trunk

svn:// URL假设主机名,但在共享的情况下,操作系统的其他部分已经在协商TCP连接。像任何其他文件夹一样参考它。