我做了很多svn/ant设置,但这次不能弄清楚出了什么问题.
使用Linux,
svn 1.6.6
ant 1.8.2
svnant 1.3.1
Run Code Online (Sandbox Code Playgroud)
我已经将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
Run Code Online (Sandbox Code Playgroud)
等等...
我的构建文件指定:
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" />
Run Code Online (Sandbox Code Playgroud)
但每当我执行
<target name="update">
<svn>
<update dir="."/>
</svn>
</target>
Run Code Online (Sandbox Code Playgroud)
我害怕:
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
Run Code Online (Sandbox Code Playgroud)
我有什么想法我做错了吗?
我假设将svnant罐子复制到$ ANT_HOME/lib应该够了吗?
oer*_*ers 25
Javahl方式总是需要某种依赖于os的驱动程序.这很难设置,我不建议使用它.
你应该尝试使用svnkit
:
<svn svnkit="true">
Run Code Online (Sandbox Code Playgroud)
这使用纯Java库,但需要svnkit.jar
在类路径中.
我只使用了回退/命令行版本,其中svn可执行文件位于PATH中.这在大多数情况下适用于以下设置没有问题:
<svn svnkit="false" javahl="false">
Run Code Online (Sandbox Code Playgroud)
注意:这些设置适用于svnant 1.31及之前的版本.从版本1.32开始,您可以使用<svnSetting />
,这在另一个答案中有描述
pro*_*007 15
由于svnant 1.3.2
属性svnkit
和javahl
已过时.另一种方法是使用该svnSetting
任务.
将此任务放在您的构建文件中:
<svnSetting
svnkit="false"
javahl="false"
id="svn.settings"/>
Run Code Online (Sandbox Code Playgroud)
然后当你调用svn
任务时这样使用它(注意refid
属性):
<target name="doingSomethingAwesome">
<svn refid="svn.settings">
<!-- do something -->
</svn>
</target>
Run Code Online (Sandbox Code Playgroud)
希望这有帮助,帮我.