code up

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Missing 'javahl' dependencies on the classpath !

SvnAnt 1.3.1でのエラーメッセージ。

エラー

Missing 'javahl' dependencies on the classpath !
      [svn]  failed.

BUILD FAILED
\build.xml:62: The following error occurred while executing this line:
\build.xml:96: Cannot find javahl, svnkit nor command line svn client

build.xmlの抜粋

<svnSetting id="settings" javahl="false" svnkit="true" username="${svn.userid}" password="${svn.password}" />

<svn refid="settings">
	<delete>
		<svnFileSet dir=".">
			<svnMissing/>
		</svnFileSet>
	</delete>
	<add dir="." recurse="true" force="true" />
	<commit dir="." recurse="true" />
</svn>

試してみたこと

svnFileSetfileset
変化なしselectorsのマニュアルではsvnFileSetを使え!とあり、tasksのマニュアルではfilesetdirsetを使え!とあって矛盾している
svnFileset(sを小文字)に
delete doesn't support the nested "svnFileset" element. typesのマニュアルではsvnFileSetではなくsvnFilesetだったのだが、これも単なるマニュアルミスの模様
svnFileSetrefid属性
The <svnFileSet> type doesn't support the refid attribute. refidtypesのマニュアルでは使えそうなのに
<svnFileSet dir="." javahl="false" svnkit="true" username="${svn.userid}" password="${svn.password}">
1.3.2で削除される予定の書き方。svnFileSet doesn't support the "username" attributeと出てダメ
<svnFileSet dir="." javahl="false" svnkit="true">
最初のエラーメッセージに戻った
messageforce属性をつけてみたり
やっぱダメ
delete→fileset→svnMissing
ダメ
SvnAntのlibにあるjarをANT_HOME/libにコピー
特に変化無し

結局

svnMissingsvnFileSetのどっちかでjavahl="false"が引き継がれてない感じなのだが、ソースコードを追ったりはせずに、素直にJavaHLを入れたところ解決した。JavaHLをオフにしているにも関わらずJavaHLで処理してるのかそうでないのかは不明。

JDKの64bitを使っているため、ここに説明があるように、JavaHL 64bit版を内包するSlik SVNをインストールした。ちなみにSubversionのサーバーが1.6系のためアーカイブから1.6系のインストーラーをダウンロードした。

最終的には

上記のJavaHLを入れるでも良かったのだが、SvnAntのソースコードからコンパイルしたsvnant.jar(1.4dev)に入れ替えても(Slik SVNなしで)deleteができるようになったので、こちらを採用することにした。対1.6のサーバーでも私の利用範囲内では大丈夫っぽい。

* 尚、1.3.1から1.4devに切り替えた際、svnFileSetrefidを指定(念のため)。またsvnSetting内のjavahlsvnkitclient属性に変更した。

<svnSetting id="settings" client="svnkit" username="${svn.userid}" password="${svn.password}" />
関連記事
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。