チームで共有して使用したいJarファイルを気軽に更新したり、取得したりできないものかと調査してましたら、「インハウス・リポジトリ」というワードにたどりつきました。
インハウス・リポジトリとは?
いわゆる社内リポジトリと呼ばれるもので、自分たちで作成したライブラリや外部リポジトリに存在しないライブラリを独自に準備した置き場所のことのようです。
インハウス・リポジトリの構築方法
基本的には、普通にHTTPアクセスできる場所を準備して、SCP、HTTP PUT、WebDAVなどでファイルをアップロードするようですが、簡単に導入できる管理ツールみたいのは無いのかなぁ~と調査したところ、次の3つが主流であることを知りました。
まずは、Glassfish4.1にwar配備できるのが超・楽!ということで、それぞれのwarファイルをデプロイしたところ、NexusとApache Archivaはデプロイエラーに!!!
というわけで、デプロイが成功したArtifactoryを数日、使ってみたのですが、今度はJarファイルをリポジトリにアップロードするタイミングで、毎回500エラーになる現象が発生。
初期化したり、いろいろと試してみたのですが、解決できずで。。。ログファイルにも、原因となるものが書き込まれていないし、こちらについても、Glassfish上での運用を諦めることにしました。
CentOS7へNexus導入
という経緯を経て、NexusをCentOSへインストールすることにしました。
Webで見た感じ、デザインも良さげでしたし!
(1) OSS版Nexusのダウンロード
- Download and Install Nexus OSS
- 今回、ダウンロードしたファイルは、「nexus-2.11.3-01-bundle.zip」。
(2) ファイルの設置
# mkdir /opt/nexus
- SCPで下記のPATHへ配置
/opt/nexus/nexus-2.11.3-01-bundle.zip
(3) nexus展開、シンボリックリンク作成
# cd /opt/nexus # unzip nexus-2.11.3-01-bundle.zip # ls -l 合計 77968 drwxr-xr-x 8 root root 105 5月 19 18:06 nexus-2.11.3-01 -rw-r--r-- 1 root root 79837174 5月 28 08:20 nexus-2.11.3-01-bundle.zip drwxr-xr-x 3 root root 35 5月 19 17:10 sonatype-work # ln -s nexus-2.11.3-01 nexus # ls -l 合計 77968 lrwxrwxrwx 1 root root 15 5月 28 12:35 nexus -> nexus-2.11.3-01 drwxr-xr-x 8 root root 105 5月 19 18:06 nexus-2.11.3-01 -rw-r--r-- 1 root root 79837174 5月 28 08:20 nexus-2.11.3-01-bundle.zip drwxr-xr-x 3 root root 35 5月 19 17:10 sonatype-work
(4) nexusユーザー作成、権限付加
# useradd nexus # id nexus uid=1001(nexus) gid=1001(nexus) groups=1001(nexus) # cd /opt/nexus # chown -Rf nexus:nexus . # ls -l 合計 77968 lrwxrwxrwx 1 nexus nexus 15 6月 1 12:44 nexus -> nexus-2.11.3-01 drwxr-xr-x 8 nexus nexus 105 5月 19 18:06 nexus-2.11.3-01 -rw-r--r-- 1 nexus nexus 79837174 5月 28 08:20 nexus-2.11.3-01-bundle.zip drwxr-xr-x 3 nexus nexus 35 5月 19 17:10 sonatype-work
(5) 起動確認
# su - nexus $ /opt/nexus/nexus/bin/nexus start Starting Nexus OSS... Started Nexus OSS.
http://[ServerのIPアドレス]:8081/nexus/ へアクセスすると、Nexusが起動しました! なお、私の環境では起動に数分かかりました。しばらく待ちましょう。
もし、Web画面が表示できない場合は、ファイアウォールの問題なので、8081ポートを開放してあげましょう。今回私はテスト用なので、ファイアウォールは無効にしてしまいました。
# systemctl stop firewalld # systemctl disable firewalld
次回では、構築したNexusサーバを使用して、WebからのJarファイルのデプロイ、GradleタスクからのJarファイルのデプロイ、さらにはインハウス・リポジトリからのJar取得を試してみたいと思います。