我已经完成了很多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应该够了吗?
答案 0 :(得分:25)
Javahl方式总是需要某种与os相关的驱动程序。这很难设置,我不建议使用它。
您应该尝试使用svnkit
:
<svn svnkit="true">
这使用纯java库,但需要svnkit.jar
在类路径中。
我只使用了回退/命令行版本,其中svn可执行文件位于PATH中。在大多数情况下,这适用于以下设置而不会出现问题:
<svn svnkit="false" javahl="false">
注意:这些设置适用于svnant 1.31及之前的版本。从版本1.32开始,您可以使用<svnSetting />
答案 1 :(得分:15)
截至svnant 1.3.2
,已弃用svnkit
和javahl
属性。另一种方法是使用svnSetting
任务。
将此任务放在构建文件中的某个位置:
<svnSetting
svnkit="false"
javahl="false"
id="svn.settings"/>
然后,当您调用svn
任务时,请以这种方式使用它(注意refid
属性):
<target name="doingSomethingAwesome">
<svn refid="svn.settings">
<!-- do something -->
</svn>
</target>
希望这有帮助,帮我。
答案 2 :(得分:0)
如果你得到“找不到javahl,svnkit也没有命令行svn客户端” 那么你必须确保已经设置了svn路径: 对于exa:path = c:\ svn \ bin;