気ままなつぶやき

おべんきょしたこととか

【maven】nexusのライブラリコンフリクト

ω・`) <最近ちょろっとしたことでもブログに残しちゃってまふ
maven周り多め?)

今日は
「nexusからライブラリをダウンロードしたら、jarファイルの中身がhtmlなんだけど。。」
ていうお問い合わせを受けて。

結論

結論からいうと、
nexusに登録していた3rdPartyのリポジトリの中で、
2つのリポジトリに同じartifactIdで登録されているライブラリがあり
その片方が壊れていた

修復

現象確認

発生したのは下記のartifact

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>2.3.5</version>
</dependency>

実際pom.xmlに設定してダウンロードしてみたけど再現した。。。orz

復旧

Mavenのセントラルリポの中身は問題なさそうだったので
調べてみると、どうやら、nexusのプロキシに設定していた

  • Mavenのセントラルレポ
  • jbossのmavenレポ

に同じartifactIdでライブラリが登録されていたようだ。

jbossのmavenリポからは既にartifactは削除されていたんだけど
nexusの性質上?ローカルのnexusにはartifactが残ってしまっていた。
(※注記参照)

このうちjboss側のartifactを削除
(※jboss側のリポからは既に削除されていた)

reindexする
f:id:pnsk:20121018164738p:plain

これでOK。



※注記

nexusはプロキシした3rdPartyのライブラリを一度取得すると
自分のローカルに落としておくのです。

このへんにあるよ。

$ pwd
${NEXUS_HOME}/nexus/sonatype-work/nexus/storage/