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を使って検索する話をします。

「エラスティックリーダーシップ」を読んだ

あまりこの手のリーダー論みたいなものを本で読むのが苦手なので、めったに買わないけど、周りで評判が良かったので買いました。

「サバイバルモード中毒」とか、「コミットメント言語」とかキャッチーな言葉で、世の中のプロジェクトで起こりがちな問題をきちんと定義していて、分かりやすいですね。常に、自分たちが「こんな状態になっていないか?」と確認するためには、非常に良いやり方です。

解決に向けたアドバイスは色々と書かれてはいますが、それは結局は各プロジェクトの状況次第なところも有って絶対的な正解は無いと思いますが、まずは自分たちの立ち位置を理解するために読むと良いですね。

6章の「コミットメント言語」だけでも読む価値有りです。

エラスティックリーダーシップ ―自己組織化チームの育て方

エラスティックリーダーシップ ―自己組織化チームの育て方

Scalatraの開発チームにjoinしました

「joinしました」って言いたいだけです。

細々とPRを送っていたらお誘い頂きましたので、Scalatraの開発チームにお誘い頂きました。最近ちゃんとしたOSS活動ができていなかったので、良い機会と思い、参加しました。

主にドキュメントや、サンプルコードがアップデートされていない箇所を直していますが、Scalatra 2.6のリリースに向けた開発も進んでいますので、積極的に参加しようと思っています。

Scalatra in Action

Scalatra in Action