【问题标题】:Cannot find javahl, svnkit nor command line svn client找不到 javahl、svnkit 和命令行 svn 客户端
【发布时间】:2013-09-04 18:16:01
【问题描述】:

我已经完成了许多 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 就足够了?

【问题讨论】:

  • 这是来自serverfault.com/questions/283373/…的交叉帖子
  • 从 svnant 1.3.2 开始,属性 svnkit 和 javahl 已被弃用。另一种方法是使用 svnSetting 任务。请参阅下面的答案。

标签: svn ant


【解决方案1】:

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 版开始,您可以使用&lt;svnSetting /&gt;,在the other answer 中有描述

【讨论】:

  • 奇怪的是,在将所有 jar 放入 $ANT_HOME/lib 之前,我总是按照我的问题进行操作。我不知道这次有什么不同。也许这与我使用 svn 1.6 而不是 1.5 和 svnant 1.3 而不是 1.2 的事实有关
  • 可能是新版本的svn ant行为不同。我只是模糊地记得最后一次与它的斗争,我想我也遇到过类似的问题。
  • 从 svnant 1.3.2 开始,属性 svnkit 和 javahl 已被弃用。另一种方法是使用 svnSetting 任务。请参阅下面的答案。
  • 有趣的是SVN-ANT的1.3.2版本不提供下载。我建议使用来自最新 SVNkit 的 jar 来让它工作。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    如果您收到“找不到 javahl、svnkit 和命令行 svn 客户端” 那么您必须确保已设置 svn 路径: 例如:path=c:\svn\bin;

    【讨论】:

    • OP 正在使用 GNU/Linux
    猜你喜欢
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2012-08-31
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多