メインコンテンツへスキップ
  1. Posts/

[Sonatype NEXUS][メモ] 自前のMavenリポジトリを使って依存関係を管理できるようにする

※この投稿は、丸太式 Advent Calendar 2014の11日目です

概要

世の中に公開されているOSSのJavaライブラリは、大抵MavenやGradle等の構成管理ツールで管理できます。
しかし、自分で作ったライブラリや会社の都合で公開できないライブラリを使う場合、自分でJarファイルを追加したり、依存関係を管理しなければなりません。
Javaは1個のライブラリが大量の依存ライブラリを必要とすることもよくあるので、これは非常に面倒です。

そこで今回は、OSSのMavenリポジトリ実装である"Sonatype NEXUS OSS"にライブラリを登録する手順の1例を(かなりざっくりと)紹介します。

手順

  1. 追加したいライブラリのJarを(ダウンロード、自前ビルドなどの方法で)用意する
  2. それっぽいpom.xmlを作る
  3. Sonatype NEXUSのUIからデプロイ

※ソースが用意できる場合、pom.xmlを作ればビルド・デプロイをmvnコマンドでやれます。

Jarを用意する

バイナリのJarを調達します。ソースやJavadocのJarを追加で調達すればEclipseやNetbeansなどのIDEで便利になりますが、今回はとりあえずバイナリだけ登録します

pom.xmlを作る

追加したいライブラリのためのpom.xmlを作ります。
依存しているJarがMaven Central等でホスティングされていれば、その依存関係も記載します。

デプロイ

NEXUSにログインし、repositoriesを開きます。
NEXUSは標準で「3rd party」というリポジトリが用意されているので、これを選択します。
下側に出ている「Artifact Upload」タブからデプロイできます。

GAV Definitionで「From POM」を選択するとファイルアップロード用のフィールドが表示されるので、先ほど作ったpom.xmlをここで指定します。
「Select Artifact(s) to Upload」ボタンからアップロードするJarを選択して「Add Artifact」ボタンを押すと、その下のグリッドに表示されます。
pom.xmlとJarを選択・追加したら、「Upload Artifact(s)」ボタンをクリックすることで、アップロードが完了します。

デプロイした物の利用

デプロイした物を利用するには、pom.xmlにNEXUSのリポジトリを設定して参照できるようにします。
初期状態のNEXUSには{NEXUSのURL}/content/groups/public/というリポジトリが有り、これを指定すると色々と幸せになれる層ですよ。