tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

json-libは普通にdependencyに足すだけだとダウンロードに失敗する件

はまった。

m2eclipseでさくっと足した場合の定義

<dependency>
	<groupId>net.sf.json-lib</groupId>
	<artifactId>json-lib</artifactId>
	<version>2.3</version>
</dependency>

これだとエラーになる。

Downloading: http://repo1.maven.org/maven2/net/sf/json-lib/json-lib/2.2.3/json-lib-2.2.3.jar
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) net.sf.json-lib:json-lib:jar:2.2.3

  Try downloading the file manually from the project website.

  Then, install it using the command: 
      mvn install:install-file -DgroupId=net.sf.json-lib -DartifactId=json-lib -Dversion=2.2.3 -Dpackaging=jar -Dfile=/path/to/file

  Alternatively, if you host your own repository you can deploy the file there: 
      mvn deploy:deploy-file -DgroupId=net.sf.json-lib -DartifactId=json-lib -Dversion=2.2.3 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

  Path to dependency: 
        1) jp.tanamon:wicket_labo:war:0.0.1-SNAPSHOT
        2) net.sf.json-lib:json-lib:jar:2.2.3

----------
1 required artifact is missing.

for artifact: 
  jp.tanamon:wicket_labo:war:0.0.1-SNAPSHOT

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)

失敗したファイルを直接ブラウザでファイルを見ても、確かにない。

1つ上のディレクトリを見てみる。

json-lib-2.2.3-jdk13-javadoc.jar
json-lib-2.2.3-jdk13-sources.jar
json-lib-2.2.3-jdk13.jar
json-lib-2.2.3-jdk15-javadoc.jar
json-lib-2.2.3-jdk15-sources.jar
json-lib-2.2.3-jdk15.jar
json-lib-2.2.3.pom     

なんかファイル名部分がpomと違っててjdk13とかjdk15とかついてる。dependencyにそういう指定って付けられたっけ?


で、困ったときのPOM Reference。
サンプルの定義にはないけど、後の文章にclassifierという指定値があることが書かれている。

ということは、こうなのか?

<dependency>
	<groupId>net.sf.json-lib</groupId>
	<artifactId>json-lib</artifactId>
	<version>2.3</version>
	<classifier>jdk15</classifier>
</dependency>

で、やってみたら通りましたとさ。


ちなみに、json-libのFAQにも書いてあった。