NetBeansのMavenプロジェクトでrome-1.0.jarを使うには

rome-1.0.jarをNetBeans6.7.1のMavenプロジェクトから使おうとしたときにちょっと引っかかったので、対策を書いておく。

対策

原因なんかいいから、まずは対策を知りたいという人向けに先に対策を書くと、以下のリポジトリ設定をpom.xmlに追加するだけ。
また、すでにrome-1.0.jarをプロジェクトのライブラリに追加している人は、一度削除してから再登録した方がよい。

<project>
    ....
    <repositories>
        <repository>
            <id>maven2-repository.dev.java.net</id>
            <name>Java.net Repository for Maven</name>
            <url>http://download.java.net/maven/2/</url>
        </repository>
    </repositories>
    ....
</project>

現象

NetBeansMavenリポジトリブラウザや、プロジェクトのライブラリの追加で表示される検索ダイアログでは、romeの1.0バージョンが検索結果に表示されていて、ライブラリにも追加できるのだが、依存ライブラリがダウンロード出来ず、ライブラリ内のクラスなどがプロジェクトから参照できない。

原因

romeのMavenセントラルレポジトリ側のメタデータやjarファイルが、java.netレポジトリ側のメタデータやjarファイルよりも古いという事が原因らしい。

どうもNetBeansMavenプラグインでは、依存ライブラリの検索時にはMavenセントラルレポジトリとjava.netリポジトリを区別していないみたいなのだが、依存ライブラリのダウンロード時にはセントラルレポジトリ側しか参照していないらしい。

おそらくpom.xmljava.netレポジトリの設定が足りていないのではと考え、レポジトリ設定を追加してやったらうまくいったという訳です。

感想

Mavenセントラルレポジトリの情報が古いのが原因の1つではあるけど、NetBeansMavenプラグインは、どこのレポジトリに存在しているライブラリを検索したのかという事を識別してライブラリの追加時にレポジトリ情報も追加した方がよいのではないだろうか?