找不到javahl、svnkit或命令行svn客户端



我已经做了很多svn/ant设置,但这次不知道出了什么问题。

使用Linux、

svn 1.6.6
ant 1.8.2
svnant 1.3.1

我已经将svnant jar文件复制到$ANT_HOME/lib

top@secret:~/apps/apache-ant-1.8.2/lib$ ls -l
-rw-r--r-- 1 root root  244831 2011-06-23 07:55 ganymed.jar
-rw-r--r-- 1 root root  948100 2011-06-23 07:55 jna.jar
-rw-r--r-- 1 root root   76383 2011-06-23 07:55 svnant.jar
-rw-r--r-- 1 root root  215757 2011-06-23 07:55 svnClientAdapter.jar
-rw-r--r-- 1 root root   89412 2011-06-23 07:55 svnjavahl.jar

等等。。。

我的构建文件指定:

<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask"   />

但每当我执行时

   <target name="update">
                <svn>
                        <update dir="."/>
                </svn>
        </target>

我得到了可怕的:

update:
      [svn] Missing 'javahl' dependencies on the classpath !
BUILD FAILED
/home/top/apps/utils/build.xml:26: Cannot find javahl, svnkit nor command line svn client

你知道我做错了什么吗?

我认为将svnant jar复制到$ANT_HOME/lib中就足够了?

Javahl方式总是需要某种依赖于操作系统的驱动程序。这是很难设置,我不建议使用它

您应该尝试使用svnkit:

<svn svnkit="true">

这使用了纯java库,但需要svnkit.jar位于类路径中。

参考文献:

  1. http://subclipse.tigris.org/svnant/svn.html
  2. http://subclipse.tigris.org/wiki/JavaHL

我只使用回退/命令行版本,其中svn可执行文件位于PATH中。在大多数情况下,以下设置都不会出现问题:

<svn svnkit="false" javahl="false">

注意:这些设置适用于svnant 1.31及之前版本。由于版本1.32,您可以使用<svnSetting />,这在另一个答案

中有描述

svnant 1.3.2起,属性svnkitjavahl已被弃用。另一种选择是使用svnSetting任务。

将此任务放在构建文件中的某个位置:

<svnSetting
    svnkit="false"
    javahl="false"
    id="svn.settings"/>

然后,当您调用svn任务时,可以这样使用它(注意refid属性):

<target name="doingSomethingAwesome">
    <svn refid="svn.settings">
        <!-- do something -->
    </svn>
</target>

希望这对我有帮助。

参考

如果您得到"找不到javahl、svnkit或命令行svn客户端"那么您必须确保svn路径是否已设置:例如:path=c:\svn\bin;

相关内容

  • 没有找到相关文章

最新更新