【问题标题】:ANT checkout task failsANT 结账任务失败
【发布时间】:2012-01-24 07:29:41
【问题描述】:

我有以下标记:

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

【问题讨论】:

  • 那么,svn://p-subversion/Project/trunk 存在吗?如果你自己执行 checkout 命令会发生什么?
  • 是的,确实如此。对我选择的文件夹进行头部修订的普通检出。
  • 会不会是项目在存储库中拼写为较低的 p 或类似的东西?
  • 你能用 ant -v 运行吗?这将显示更多调试信息,也许会有所帮助。
  • Ant 和 Tortoise 客户端使用相同的svn 协议。 Ant 与我的乌龟测试在同一台机器上执行。据我了解,我不使用代理。

标签: java svn ant build task


【解决方案1】:

如果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-Directory 添加到 PATH
但请注意安装与您的乌龟客户端相同的客户端版本。如果它们不匹配,它们将使另一个无法访问工作副本。

【讨论】:

  • 据我了解,dir 属性不应指向DIRECTORY_OF_SVN_CLIENT。例如,在我的情况下,它指向存储我的构建文件的文件夹以及我执行它们的位置 (${basedir})。但无论如何谢谢!这有帮助。
【解决方案2】:

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

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

[编辑]如果是 Windows 共享...

file://p-subversion/Project/trunk

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

【讨论】:

  • 我有一个网络共享并定期从远程机器(使用//p-subversion/[RepositoryName]/[trunk|branch]-like url)进行结帐。
  • 我已经编辑了我的答案以说明处理 Windows 共享。
猜你喜欢
  • 2011-09-15
  • 2014-03-09
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 2011-12-19
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多