7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WindowsにMavenリポジトリのNEXUSサーバを構築する方法

Last updated at Posted at 2017-09-19

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プロセスのラッパー
NEXUSの起動
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の設定

  1. 左メニューの「Administration」「Server」をクリックします。
  2. 右のメイン画面に「nexus」タブが表示されます。
  3. この画面の真ん中あたりに「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」の確認

  1. 左メニューの「Repositories」をクリックします。
  2. 右のメイン画面に「Repositories」タブが表示れます。
  3. リポジトリの一覧が表示されるので「Central」の行を選択します。
  4. 画面下部の「Browse Remote」タブをクリックします。
  5. 左の「Refresh」ボタンをクリックします。
  6. エラーが出ずに、ツリーが展開されればOKです。

6.2. 「Download Remote Indexes」をTrueに変更

  1. 左メニューの「Repositories」をクリックします。
  2. 右のメイン画面に「Repositories」タブが表示れます。
  3. リポジトリの一覧が表示されるので「Central」の行を選択します。
  4. 画面下部の「Configuration」タブをクリックします。
  5. 「Remote Repostitory Access」の「Download Remote Indexes」を False から True に変更します。

忘れずに画面下部の「Save」ボタンを押下します。
インデックスを生成するため、しばらく待ちます。

7. Public Repositoriesの確認

MavenでNUEXUSを経由させる場合、利用者がアクセスするリポジトリは「Public Repositorties」になります。「Public Repositorties」に「Central」が含まれていることを確認します。

  1. 左メニューの「Repositories」をクリックします。
  2. 右のメイン画面に「Repositories」タブが表示れます。
  3. リポジトリの一覧が表示されるので「Public Repositories」の行を選択します。
  4. 画面下部の「Configuration」タブをクリックします。
  5. 「Ordered Group Repositories」に「Central」が含まれていればOKです。

8. 動作確認

WindowsにMaven(Proxy経由/NEXUS経由)をインストールする方法」を参考に、MavenでNEXUSを経由させ、問題なくプロジェクトが作成されることを確認します。

9. さいごに

今回はWindowsにMavenリポジトリのNEXUSサーバを構築する方法について説明しました。
開発環境によってはインターネットにアクセスするのに制限のあるネットワークもあるかと思います。その場合、NEXUSサーバを利用することで、インターネットにアクセスする端末をNEXUSサーバに限定することが可能です。
構築するのに手間は掛かりますが、NEXUSを経由させることでMavenによるインターネットアクセスの経路をNEXUSに集約するため、統制がしやすく、またキャッシュの効果もあります。
大規模なプロジェクトでは、ぜひNEXUSを利用してみてください。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?