Magnolia Tech

いつもコードのことばかり考えている人のために。

The Central RepositoryでArtifactを検索する

The Central Repositoryとは?

The Central RepositoryとはSonatype社が運営するJVM系言語のためのパブリックモジュールリポジトリです。Apache Mavenや、sbtといったビルドツールのデフォルトの参照先になっているので、最もよく使われているJVMリポジトリといえるでしょう。

f:id:magnoliak:20170628001615p:plain

JVM系のモジュールパッケージは、Mavenの慣習にならってArtifact(歴史的価値の有る遺物、工芸品という意)と呼ばれますので、以降Artifactと記載します。

(Bintrayが運営するjcenterなどもメジャーなリポジトリですが、こちらでは一般的なpackageという記載になっていますね)

GUIでArtifactを検索する

The Central Repositoryは単なるリポジトリアーカイブだけでなく、Artifactの検索機能も提供しています。

The Central Repository Search Engine

f:id:magnoliak:20170628001645p:plain

キーワードを入力してSEARCHボタンを押下すると、GroupId(パッケージ名、大抵はドメイン名の逆順)か、ArtifactId(プロジェクト名)にマッチするものの一覧が表示されます。

例えば、junitを検索した結果は以下のように表示されます。

f:id:magnoliak:20170628001816p:plain

「latestVersion」という列には最新バージョンと、The Central Repositoryに登録されているバージョンの個数が括弧付きで表示されます。junitの検索例では、GroupId、ArtifactIdがともに「junit」となっている7行目を見て下さい。最新バージョンが「4.12」、登録されているバージョンが全部で24個となっていることが分かるかと思います。

Artifactはforkしたプロジェクトが別のGroupIdで公開されていることが多いので、Artifact名だけだと目的のパッケージがオリジナルなのか、forkされたものなのか分かりづらいですが…

最新バージョンのバージョンナンバーをクリックするとpomファイルの中身(XML)が表示され、ウェブサイトの情報やライセンス、作者の情報などが確認できます。素のXMLがそのまま表示されるので、読み取りづらいですが、入手可能な情報はこれが全てなので、ここで全て確認することができます。残念ながらpomファイルの中身は検索対象にはなっていません。

また、左下にはMavenやsbtといった各種JVM系ビルドツールでArtifactへの依存関係の指定方法が例示されていますので、こちらをビルドの設定ファイルへコピペすれば依存関係を定義できるようになっています。地味に嬉しい機能です。

f:id:magnoliak:20170628004200p:plain

バージョン個数をクリックすると、入手可能なバージョンの一覧が表示されます。

f:id:magnoliak:20170628001728p:plain

検索対象がほぼほぼgroupIDとartifactIDに限られていること、命名規約的にPerlのモジュール名のような一般名詞の組み合わせでできているわけではないので、検索機能を使って未知のモジュールを探す、というより既知のモジュールのバージョン一覧を取得する方が主な使い方になるでしょう(最新バージョンの情報が欲しいだけならGitHubを参照した方が早いし、javadocの中身を直接表示する機能も無いので…)。

次回はREST APIを使って検索する話をします。