Nexus Repository Manager 2をインストールしたことがありましたが、Nexus Repository Manager 3をインストールしたことがなかったので、インストールしてみました
Nexus Repository Managerとは
Javaアプリケーションを複数のチームで開発する場合に、Aチームが作成したライブラリをBチームが依存していたり、
Cチームが作成しているライブラリをAチームが依存していたり、各ライブラリの依存が複雑になる傾向があります。
そのため、開発プロジェクトではライブラリの依存性を自動で解決する必要があります。
ライブラリの依存をパッケージリポジトリを使用することで解決することができます。
Nexus Repository Managerはパッケージリポジトリなどの機能を提供しています。
インストール環境
OSとMWのバージョンは以下の通りです。
OS / MW | Version |
---|---|
CentOS | 7 |
Java | 1.8.0_252 |
インストール手順
rootユーザで作業をします。
nexusユーザを作成
Nexus Repository Manager3はrootユーザでの起動が推奨されていないためnexusユーザを作成します。
useradd nexus
ファイルディスクリプタを拡張
echo "nexus - nofile 65536" >> /etc/security/limits.conf
Nexus Repository Manager 3 をダウンロード
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
/opt配下にTARファイルを解凍する
2020/9/27時点のバージョンが3.27.0-03のため、バージョンが異なる場合はバージョンを読み替えてください。
cd /opt tar xvzf /root/latest-unix.tar.gz mv nexus-3.27.0-03 nexus chown nexus:nexus -R nexus chown nexus:nexus -R sonatype-work
Nexus Repository Manager 3 の起動
cd ./nexus/bin/
su nexus
./nexus run
下記のメッセージが出力されれば起動は完了です。 http://IPアドレスorFQDN/8081 にブラウザから開いてNexus Repository Manager 3 の画面が表示されればOK。
------------------------------------------------- Started Sonatype Nexus OSS 3.27.0-03 -------------------------------------------------
サービスに登録する
手動起動だとサーバ再起動後に起動を忘れたりするのでサービスに登録しておきましょう。
vi /etc/systemd/system/nexus.service
下記の内容を記入し保存する
[Unit] Description=nexus service After=network.target [Service] Type=forking LimitNOFILE=65536 ExecStart=/opt/nexus/bin/nexus start ExecStop=/opt/nexus/bin/nexus stop User=nexus Restart=on-abort [Install] WantedBy=multi-user.target
自動起動に登録する。
enable nexus.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nexus.service to /etc/systemd/system/nexus.service.
推奨スペックを確認しましょう
CPUやメモリの推奨スペックを確認してください。 メモリやCPUや低いと起動時に時間がかかります。
リポジトリ数によってメモリの推奨サイズが違うので、ここが一番注意が必要かと思います。メモリには十分に注意してください。
感想
マシンのスペックが低かったため起動に時間がかかっていることに気づかずに原因を調べるのに手間取ってしまった。 実際のプロジェクトではリポジトリマネージャを活用できていないのでNexusを触り慣れておいてプロジェクトで導入できるように準備しておきたいと思う。