この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

IvyDEでソースファイルをjarへアタッチする方法


これまで2年ほどIvyDEを使ってきて、ずーっと悩まされていたのが

『依存しているjarはダウンロードしてくれても、ソースファイルはダウンロードしてくれない』

という問題。
これでは、例えば依存関係のあるライブラリ上にブレークポイントを置きたい場合、
いちいち面倒な設定をしなければなりません。(デバッガの起動構成を変更してソースパスを追加)


しかしついに。ついに!ひたすら試行錯誤した挙句、とうとう解決しました。その答えとは…


Maven2リポジトリに対してはurlリゾルバではなく、ibiblioリゾルバを使う』


でした。

要するに


ivysettings.xmlで、こんな風に書いてはいけないということ。

<url name="mvncentral" m2compatible="true">
    <artifact pattern="http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[module]-[revision].[ext]" />
</url>


これは、このように書かなければならない。

<ibiblio name="mvncentral" m2compatible="true" useMavenMetadata="true" root="http://repo1.maven.org/maven2" />

これで、jarに加えてソースも自動的にダウンロードしてくれるようになります。


ibiblioリゾルバって、名前のとおりibiblioのサイトにしか使えないと思っていたのに。。。
むしろこっちを通常は使うべきとか、どういうこと?

ヽ(`Д´)ノプンプン!!

参考資料


http://ant.apache.org/ivy/history/latest-milestone/resolver/ibiblio.html

ここの、useMavenMetadataの解説に注目。