Locked History Actions

ivy/Trouble

トラブルとその対処

Mavenリポジトリから取得できない

特にgoogle Guice/CollectionsのSHA1チェックサムが間違っていると言われてダウンロードすることができない。

[ivy:retrieve]  problem while downloading module descriptor:
http://google-maven-repository.googlecode.com/svn/repository/com/google/inject/guice/2.0/guice-2.0.pom:
invalid sha1: expected=6c5029102c03c627275fe183377c0586a3194425
computed=3bb8d0283ecfc05ba8dae825e46980d669265333 (550ms)

解決策としては(あまりよくはないが)、ivysettings.xmlでチェックサムを無視する設定にする。

<ivysettings>
 <property name="ivy.checksums" value=""/> <!-- これ -->
  <conf defaultResolver="ibiblio"/>
  <resolvers>
    <ibiblio name="ibiblio" m2compatible="true"  />
  </resolvers>
</ivysettings>

参考:

sources.jarしかとってこない

pom.xmlにてバイナリとソースを指定すると、なぜかソースしかとってこないことがある。 現在のところの対処法としてはソースを削除する。

Eclipse上のantでのビルド時のエラー

以下のようなエラーが発生する。 おそらく、IvyDEがeclipse-3.6にはきちんと対応していないものと思われる。

BUILD FAILED
..........\build.xml:31: Problem: failed to create task or type antlib:org.apache.ivy.ant:configure
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
No types or tasks have been defined in this namespace yet

This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:
        -......\eclipse-3.6\plugins\org.apache.ant_1.7.1.v20100518-1145\lib
        -......\.ant\lib
        -a directory added on the command line with the -lib argument

検索してみると、

ant install.avy

を行えとあるが、どこでこれを行えばいいのか不明。 要するに、eclipse上のantがivyのjarファイルを探し出せないだけなので、以下のようにすればよい。

  • 「実行>外部ツール>外部ツールの構成」メニューを実行する。
  • クラスパス」タブをクリックし、「追加タスク及びサポート」をクリック
  • 右側の「外部jarを追加」をクリック。
  • eclipse3.6のpluginsディレクトリ中の「org.apache.ivy_*jar」を選択(ディレクトリではない)。

自作のモジュールの推移的依存を取得してこない

例えば、自作のxxxというモジュールを作成し、そのjarとpom.xmlを何らかのリポジトリにおいたとする。 このxxxはaaaやbbbに依存しているとする。

このとき、他のプロジェクトyyyにてxxxへの依存を定義すれば、aaaやbbbを自動的に取得してくるはずだが、それをしてくれない。 このため、yyyではxxxのほかにaaaやbbbへの依存を記述しなければならない。

Evictedに注意を参照のこと。

jms.jarその他が取得できないと言われる

log4jの参照しているjms.jar等がライセンスの関係でもはやリポジトリ上にない。 手早く回避するにはlog4jを1.2.14にする。

http://stackoverflow.com/questions/1574534/ivy-failed-to-resolve-dependency-what-to-check-what-to-do