= pom.xmlが無視される =
Ivyでは多くの場合、依存をmaven2リポジトリ上から取得してくるが、そのpom.xmlはIvyの形式(ivy.xml)に自動変換されてivyキャッシュに格納される。例えば、プロジェクト中でguice-2.0への依存を宣言すると、ivyはmaven2リポジトリからそれを取得し、以「${user.home}/.ivy2/cache/com.google.inject/guice」に以下を作成する。
* ivy-2.0.xml.original ... オリジナルのguiceのpom.xmlファイル
* ivy-2.0.xml ... 上をivy.xmlに自動変換したもの。
* jars ... guice-2.0のjarファイルを格納するフォルダ
* ivydata-2.0.properties ... 今のところ用途不明
ivy-2.0.xmlは以下のようになる。
{{{
2.0
1.0
}}}
このように、dependencies部分に正しくaopallianceへの依存が記述されている。
これがうまくいかない場合がある。アーティファクトのjarは取得できるものの、pom.xmlが取得できないため、ivyはこのアーティファクトについては勝手にデフォルトのivy.xmlを作成してしまい、そのアーティファクトの依存(現在のプロジェクトから見ると推移的依存)が抜け落ちてしまうことがある。
{{{
}}}
このケースはivysettings.xmlのリゾルバ指定の問題と思われる。このときの、ivyの出力を観察してみると
([[ivy/IvyDE/console]]の訳注のやり方でチェック)、以下のような出力が見られる。
{{{
[ivy:resolve] loadData of clog#clog;0.1.3 of rootConf=compile
[ivy:resolve] using chainedResolvers to resolve clog#clog;0.1.3
[ivy:resolve] chainedResolvers: Checking cache for: dependency: clog#clog;0.1.3 {compile=[compile(*), master(*)], runtime=[runtime(*)]}
[ivy:resolve] no ivy file in cache for clog#clog;0.1.3: tried C:\Users\admin\.ivy2\cache\clog\clog\ivy-0.1.3.xml
[ivy:resolve] no ivy file in cache for clog#clog;0.1.3: tried C:\Users\admin\.ivy2\cache\clog\clog\ivy-0.1.3.xml
[ivy:resolve] trying file:C:\Users\admin/.m2/repository/clog/clog/0.1.3/clog-0.1.3.pom
[ivy:resolve] tried file:C:\Users\admin/.m2/repository/clog/clog/0.1.3/clog-0.1.3.pom
[ivy:resolve] local: resource not reachable for clog#clog;0.1.3: res=file:C:/Users/admin/.m2/repository/clog/clog/0.1.3/clog-0.1.3.pom
[ivy:resolve] trying file:C:\Users\admin/.m2/repository/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] tried file:C:\Users\admin/.m2/repository/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] local: resource not reachable for clog#clog;0.1.3: res=file:C:/Users/admin/.m2/repository/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] local: no ivy file nor artifact found for clog#clog;0.1.3
[ivy:resolve] no ivy file in cache for clog#clog;0.1.3: tried C:\Users\admin\.ivy2\cache\clog\clog\ivy-0.1.3.xml
[ivy:resolve] trying http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.pom
[ivy:resolve] tried http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.pom
[ivy:resolve] HTTP response status: 404 url=http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.pom
[ivy:resolve] CLIENT ERROR: Not Found url=http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.pom
[ivy:resolve] ibiblio: resource not reachable for clog#clog;0.1.3: res=http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.pom
[ivy:resolve] trying http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] tried http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] HTTP response status: 404 url=http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] CLIENT ERROR: Not Found url=http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] ibiblio: resource not reachable for clog#clog;0.1.3: res=http://repo1.maven.org/maven2/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] ibiblio: no ivy file nor artifact found for clog#clog;0.1.3
[ivy:resolve] no ivy file in cache for clog#clog;0.1.3: tried C:\Users\admin\.ivy2\cache\clog\clog\ivy-0.1.3.xml
[ivy:resolve] trying http://10.8.0.1:8001/maven2/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] tried http://10.8.0.1:8001/maven2/clog/clog/0.1.3/clog-0.1.3.jar
[ivy:resolve] internal: no ivy file found for clog#clog;0.1.3: using default data
}}}
最後の「no ivy file found for clog#clog;0.1.3: using default data」がこの状態を示している。