同一のPOM内で成果物を識別

開発中プロジェクトのpom.xmljson-libを追加したら、なぜかjar本体が落ちてこない。versionも正しく書いているはずなのにどうして?と思い、リモートリポジトリを直接覗くと、jarファイルが複数に分かれていました。

json-lib-2.1-jdk13.jar
json-lib-2.1-jdk13-javadoc.jar
json-lib-2.1-jdk13-sources.jar
json-lib-2.1-jdk15.jar
json-lib-2.1-jdk15-javadoc.jar
json-lib-2.1-jdk15-sources.jar

こういうケースでは、jarを特定するためにclassifier要素が必要なんですね。初めて知りました。
具体的には、例えば以下のように記述します。

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

でもこの「複数の成果物の存在」って、どうやったら事前に知ることができるんだろう。エラーが出てからリポジトリを覗くしかないってのも変な話だよなあ。