1. はじめに
今回はWindowsにMavenリポジトリのNEXUSサーバを構築する方法について説明します。大規模プロジェクトではProxy経由ではなくNEXUSサーバ経由でMavenを利用することをお勧めします。
1.1. 検証環境
- Java 1.8.0_131
- nexus-2.14.5-02
- Apache Maven 3.3.9
1.2. 作業の流れ
項番 | 項目 | 概要 |
---|---|---|
1 | NEXUSのダウンロードとインストール | 公式サイトからZipファイルをダウンロードし、インストール先にZipファイルを展開すれば完了です。 |
2 | NEXUSの起動 | OSの種類毎に起動スクリプトが用意されているので、対応するものを実行します。 |
3 | NEXUSにログイン | NEXUSの設定はWebコンソールから行うので、まずはNEXUSにログインします。 |
4 | (オプション)Proxyの設定 | インターネットにアクセスする際にProxyが必要な場合、Proxyを利用するための設定を行います。 |
5 | Centralリポジトリからのインデックスの取得 | インストールしたNEXUSにはリポジトリのデータが含まていないため、Maven Centralリポジトリのインデックス情報を取得します。 |
6 | Public Repositoriesの確認 | NEXUSが利用者に公開するリポジトリがPublic Repositoriesです。ここにCentralのデータが含まることを確認します。 |
7 | 動作確認 | NEXUS経由でライブラリが取得できることを確認するため、TERASOLUNA5.xのブランクプロジェクトを作成してみます。 |
2. NEXUSのダウンロードとインストール
https://www.sonatype.com/download-oss-sonatype からNEXUSをダウンロードします。
今回は2系のWindows版(nexus-2.14.5-02-bundle.zip
)をダウンロードし、インストール先となる任意のディレクトリに展開します。
nexus-2.14.5-02-bundle.zip
には以下の2つがふくまれています。
- nexus-2.14.5-02 : NEXUSのプログラム
- sonatype-work : リポジトリのデータを格納するディレクトリ
3. NEXUSの起動
{NEXUSのインストールディレクトリ}/bin/jsw
ディレクトリにOS毎のディレクトリがあります。
起動、停止のスクリプトはこのディレクトリに格納されています。
例えば32bitのWindowsの場合はwindows-x86-32
になります。
項番 | スクリプト | 説明 |
---|---|---|
1 | console-nexus.bat | サービスではなく、通常のプロセスとして起動させるスクリプト |
2 | install-nexus.bat | サービスとして登録するためのスクリプト |
3 | uninstall-nexus.bat | サービスから削除するためのスクリプト |
4 | start-nexus.bat | サービスを起動するためのスクリプト |
5 | stop-nexus.bat | サービスを停止するためのスクリプト |
6 | wrapper.exe | Javaプロセスのラッパー |
C:\tools\nexus-2.14.5-02-bundle\nexus-2.14.5-02\bin\jsw\windows-x86-32>console-nexus.bat
wrapper | --> Wrapper Started as Console
wrapper | Launching a JVM...
jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
jvm 1 |
jvm 1 | 2017-09-05 15:18:42,373+0900 INFO [WrapperListener_start_runner] org.sonatype.nexus.bootstrap.jsw.JswLauncher - Starting with arguments: [./conf/jetty.xml, ./conf/jetty-requestlog.xml]
... 省略 ...
console-nexus.batでプロセスとして起動した場合、Ctrl+Cで停止します。
4. NEXUSにログイン
Webブラウザで http://localhost:8081/nexus にアクセスします。
設定を行うにはAdminユーザでログインする必要があります。
ログインボタンは少し分かり辛いですが、画面右上の「Log In」のリンクをクリックするとログインダイアログが表示されます。
- デフォルトのユーザ情報
- Username : admin
- Password : admin123
5. (オプション)Proxyの設定
- 左メニューの「Administration」「Server」をクリックします。
- 右のメイン画面に「nexus」タブが表示されます。
- この画面の真ん中あたりに「Default HTTP Proxy Settings(optional)」の項目があるので、これをチェックします。
Proxyの接続情報(ホスト名、ポート番号等)が編集可能になるので、個人の環境に合わせて設定してください。
項番 | 項目 | 値 | 説明 |
---|---|---|---|
1 | Proxy Host | yourproxy.exmaple.com | Proxyサーバのホスト名もしくはIPアドレスを設定 |
2 | Proxy Port | 8080 | Proxyサーバのポート番号を設定 |
Proxyサーバに認証が必要な場合、「Authentication(optional)」をチェックし、認証情報を設定します。
項番 | 項目 | 値 | 説明 |
---|---|---|---|
1 | Username | yourProxyUser | Proxyサーバの認証ユーザのユーザIDを設定 |
2 | Password | yourProxyPass | Proxyサーバの認証ユーザのパスワードを設定 |
設定が完了した後、忘れずに画面下部の「Save」ボタンを押下します。
6. Centralリポジトリからのインデックスの取得
6.1. 「Browse Remote」の確認
- 左メニューの「Repositories」をクリックします。
- 右のメイン画面に「Repositories」タブが表示れます。
- リポジトリの一覧が表示されるので「Central」の行を選択します。
- 画面下部の「Browse Remote」タブをクリックします。
- 左の「Refresh」ボタンをクリックします。
- エラーが出ずに、ツリーが展開されればOKです。
6.2. 「Download Remote Indexes」をTrue
に変更
- 左メニューの「Repositories」をクリックします。
- 右のメイン画面に「Repositories」タブが表示れます。
- リポジトリの一覧が表示されるので「Central」の行を選択します。
- 画面下部の「Configuration」タブをクリックします。
- 「Remote Repostitory Access」の「Download Remote Indexes」を
False
からTrue
に変更します。
忘れずに画面下部の「Save」ボタンを押下します。
インデックスを生成するため、しばらく待ちます。
7. Public Repositoriesの確認
MavenでNUEXUSを経由させる場合、利用者がアクセスするリポジトリは「Public Repositorties」になります。「Public Repositorties」に「Central」が含まれていることを確認します。
- 左メニューの「Repositories」をクリックします。
- 右のメイン画面に「Repositories」タブが表示れます。
- リポジトリの一覧が表示されるので「Public Repositories」の行を選択します。
- 画面下部の「Configuration」タブをクリックします。
- 「Ordered Group Repositories」に「Central」が含まれていればOKです。
8. 動作確認
「WindowsにMaven(Proxy経由/NEXUS経由)をインストールする方法」を参考に、MavenでNEXUSを経由させ、問題なくプロジェクトが作成されることを確認します。
9. さいごに
今回はWindowsにMavenリポジトリのNEXUSサーバを構築する方法について説明しました。
開発環境によってはインターネットにアクセスするのに制限のあるネットワークもあるかと思います。その場合、NEXUSサーバを利用することで、インターネットにアクセスする端末をNEXUSサーバに限定することが可能です。
構築するのに手間は掛かりますが、NEXUSを経由させることでMavenによるインターネットアクセスの経路をNEXUSに集約するため、統制がしやすく、またキャッシュの効果もあります。
大規模なプロジェクトでは、ぜひNEXUSを利用してみてください。