找不到javahl,svnkit和命令行svn客户端

时间:2011-06-23 16:28:05

标签: svn ant

我已经完成了很多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罐子复制到$ ANT_HOME / lib应该够了吗?

3 个答案:

答案 0 :(得分:25)

Javahl方式总是需要某种与os相关的驱动程序。这很难设置,我不建议使用它。

您应该尝试使用svnkit

<svn svnkit="true">

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

参考文献:

  1. http://subclipse.tigris.org/svnant/svn.html
  2. http://subclipse.tigris.org/wiki/JavaHL
  3. 我只使用了回退/命令行版本,其中svn可执行文件位于PATH中。在大多数情况下,这适用于以下设置而不会出现问题:

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

    注意:这些设置适用于svnant 1.31及之前的版本。从版本1.32开始,您可以使用<svnSetting />

    中描述的{{1}}

答案 1 :(得分:15)

截至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>

希望这有帮助,帮我。

REFERENCE

答案 2 :(得分:0)

如果你得到“找不到javahl,svnkit也没有命令行svn客户端” 那么你必须确保已经设置了svn路径: 对于exa:path = c:\ svn \ bin;