Linux で独自の Nexus プライベート サーバーを構築する方法

Linux で独自の Nexus プライベート サーバーを構築する方法

b. タイプ

この記事では、Linuxサーバー上でDockerを使用してNexusプライベートサーバーを構築する方法について説明します。

1. Nexusをインストールする

1. データを保存する場所を作成する

# ディレクトリを入力します。cd /srv を使用するだけです
# フォルダを作成する mkdir nexus-data
# 権限を付与してください。そうしないと、起動時にエラーが報告されます。操作権限なし chmod 777 nexus-data

2. 開始

次のコマンドを実行すると、イメージが自動的にプルされ、起動されます。

docker run -d -p 8081:8081 --name nexus -v /srv/nexus-data:/nexus-data --restart=always sonatype/nexus3

docker logs -f nexusで起動ログを確認します。Started Started Sonatype Nexus OSS表示されたら、起動が成功したことを示します。http http://ip:8081からアクセスできます。


右上隅の「サインイン」をクリックしてログインします。アカウントはadminであり、パスワードは画像で確認する必要があります。

# イメージを入力 docker exec -it nexus bash
# パスワードを確認してください。ログインボックスにパスが求められたら、それをコピーします。ログインに成功すると、パスワードを変更するように求められます cat /nexus-data/admin-password

この時点で起動は完了です。ホームページに入ったら、左側のメニューバーのBrowseをクリックして、所有する倉庫を表示します。

2. ネクサス倉庫

1. 倉庫タイプ

Nexusには4つの倉庫と4つの倉庫タイプがあります

a. 倉庫

倉庫名説明する
メイブンセントラルMaven セントラル リポジトリ。デフォルトでは https://repo1.maven.org/maven2/ から jar を取得します。
Maven リリースプライベートライブラリ配布jar
Maven スナップショットプライベートライブラリスナップショット(デバッグバージョン)jar
maven-パブリックウェアハウスのグループ化、上記3つのウェアハウスを組み合わせて外部サービスを提供し、ローカルのMaven基本構成settings.xmlで使用します。
タイプ説明する
グループ(倉庫グループタイプ)開発者が設定するためのリポジトリ
ホスト型(ホストタイプ)社内プロジェクト用のリリース倉庫(社内開発者がリリースして保管するための倉庫)
プロキシ(プロキシタイプ)リモート中央ウェアハウスからデータのウェアハウスを検索します (対応するウェアハウスの [構成] ページをクリックし、プロキシされているリモート ウェアハウスのパスである [リモート ストレージの場所] プロパティの値を確認できます)。
仮想(仮想型)仮想倉庫(基本的には使用しません。上記3つの倉庫の使用に重点を置きます)

2. ジャーパッケージを引き抜くプロセス

Maven はホスト リポジトリまたはプロキシ リポジトリからコンポーネントを直接ダウンロードできますが、プロキシ リポジトリはリモート リポジトリからコンポーネントを間接的にダウンロードしてキャッシュします。便宜上、Maven は実際のコンテンツがないリポジトリ グループからコンポーネントをダウンロードできます (下の図の点線で示され、実際のコンポーネント コンテンツを取得するために含まれているホスト リポジトリまたはプロキシ リポジトリを参照します)。

3. 倉庫を作る

上記の説明で、倉庫について理解できました。次に、代理倉庫(proxy)宿主倉庫(hosted)倉庫組(group)に分かれた倉庫を作成します。ホームページの小さなネジをクリックし、 Repositoriesを選択して倉庫管理リストに入ります。その後、倉庫の作成を開始できます。倉庫の種類を選択するときは、必ずmaven2を選択してください。

a. プロキシ倉庫

アリババの中央倉庫を利用しています

b. ホストされたリポジトリ

ここでreleasessnapshotリポジトリを作成できます。ここでは1つの例を示します。

c. グループ倉庫グループ

3. プロジェクト構成

最初の 2 つの章で、Linux サーバーに Nexus をデプロイし、ウェアハウスを作成しました。次に、プロジェクトでこれを構成してみましょう。

1. Mavenプロジェクトを作成する

デモ用にツールクラスを作成しましょう。以下はディレクトリ構造です。

2. pomファイル

デモンストレーションの目的で、 releaseリポジトリを構成しました。実際には、 snapshotリポジトリも構成する必要があります。Maven は、バージョンの後に-SNAPSHOTが続くかどうかを判断します。続く場合は、スナップショット リポジトリに公開されます。そうでない場合は、リリース リポジトリに公開されます。

<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<プロジェクト xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 <モデルバージョン>4.0.0</モデルバージョン>
 <groupId>com.gjing</groupId>
 <artifactId>デモ</artifactId>
 <バージョン>1.0</バージョン>
 <name>デモ</name>
 <description>Spring Boot のデモ プロジェクト</description>

 <プロパティ>
  <java.version>1.8</java.version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </プロパティ>

 <配布管理>
  <リポジトリ>
   <!--ID は自由に記述できますが、Maven 設定ファイルと一致している必要があります -->
   <id>リリース</id>
   <!-- ストレージ タイプがリリースで、ウェアハウス タイプがホスト (ホスト ウェアハウス) であるウェアハウスを指します---->
   <url>http://Nexus リポジトリ IP:8081/repository/me-release/</url>
  </リポジトリ>
 </配布管理>

 <ビルド>
  <プラグイン>
   <プラグイン>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <バージョン>3.8.1</バージョン>
    <構成>
     <ソース>1.8</ソース>
     <target>1.8</target>
    </構成>
   </プラグイン>
   <プラグイン>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <バージョン>2.8.2</バージョン>
   </プラグイン>
  </プラグイン>
 </ビルド>
</プロジェクト>

3. Maven構成設定ファイル

IDはプロジェクトのPOMファイルと一致いる必要があります

 <サーバー>
 <サーバー>
  <id>releases</id><!--プロジェクトのpomファイルの設定に対応-->
  <ユーザー名>管理者</ユーザー名>
  <パスワード>admin123</パスワード>
 </サーバー>
 </サーバー>

4. リリース

IDEA開発ツールを使用している場合は、右側のツールバーのMavenツールで直接デプロイをクリックするか、コマンドラインでプロジェクトのルートディレクトリを直接入力してmvn deploy実行します。


この時点で、私たちのjarパッケージはNexusプライベートサーバーにも表示されます。


これは成功したリリースです

5. 使用

Maven プロジェクトで Nexus をリモート リポジトリとして使用できるようにするには、2 つの方法があります。1 つ目は、プロジェクトの pom.xml を変更して、1 つのプロジェクトで Nexus リポジトリを使用できるようにすることです。もう 1 つは、Maven の構成ファイル settings.xml を変更して、すべてのプロジェクトで Nexus リポジトリを使用できるようにすることです。ここでは、setting.xml のみを必要とする 2 番目の方法を採用します。また、このグループが作成されたときに、他の 3 つの倉庫がすでに含まれていたため、jar を取り出すためのプライベート サーバー倉庫アドレスを倉庫グループに書き込む必要があります。

1. settings.xml ファイル

Maven設定ファイルでmirrorsを探し、グループウェアハウスのmirrorを追加し、URLに作成したグループアドレスを入力します。IDと名前は自由に入力でき、mirrorOfは私が書いたものと同じにすることができます。

 <鏡>
 <ミラー>
  <id>ミネクサス</id>
  <name>自分のネクサスリポジトリ</name>
  <url>http://xxx:8081/repository/me-group/</url>
  <mirrorOf>中央</mirrorOf>
 </ミラー>
 </ミラー>

2. 検証

他のプロジェクトに pom ファイルをインポートするだけです。正常にインポートされると、定義したツール クラスをプロジェクトで正常に使用できるようになります。

これで全工程は終了です。ご質問があればコメント欄でお知らせください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nexus をベースに Alibaba Cloud プロキシ ウェアハウスを構成するプロセスの分析
  • Nexus を使用して Docker リポジトリを作成する方法
  • ウェブページ経由で jar パッケージを Nexus にアップロードする方法
  • Nexus を使用してローカル エリア ネットワークで Maven プライベート サーバーとアイデアを構築する方法
  • Nexus サーバーを設定するための詳細な手順
  • CentOS7 Nexusのインストール手順の詳細な紹介
  • Maven Nexus のインストール Nexus プライベート サーバーの問題と解決策
  • Nexusプライベートサーバー構築原理とチュートリアル分析

<<:  Vue.js の計算プロパティ、監視プロパティ、ライフサイクルの詳細な説明

>>:  MySQLのさまざまなロックの概念的理解

推薦する

Vmware + Ubuntu18.04 に Hbase 2.3.5 をインストールするための詳細なチュートリアル

序文前回の記事では Hadoop をインストールしましたが、今回は Hbase をインストールします...

ウェブサイトのパフォーマンス: 画像とCookieの最適化、モバイルアプリケーションの最適化

前のセクションでは、コンテンツ、サーバー、JavaScript、CSS など、Web サイトのパフォ...

MySQLでユーザー認証情報を表示する具体的な方法

具体的な方法: 1. コマンドプロンプトを開く2. mysql -u root -pコマンドを入力し...

オブジェクトのプロパティを反復処理する際の TypeScript の問題

目次1. 問題2. 解決策1. オブジェクトをanyとして宣言する2. オブジェクトのインターフェー...

MySQLクエリのパフォーマンスに影響を与える大きなオフセットの理由と最適化の詳細な説明

序文MySQL クエリは select コマンドを使用し、limit および offset パラメー...

node.js で Web サーバーを作成する手順の詳細な説明

序文node.js でサーバーを作成するのは非常に簡単です。小さいながらも完全な Web サーバーを...

jQueryは従業員情報の追加と削除の機能を実装します

この記事では、従業員情報の追加と削除の機能を実装するためのjQueryの具体的なコードを参考までに共...

Vueは3段階のナビゲーション表示と非表示を実装します

この記事では、3階層ナビゲーションの表示と非表示を実現するためのVueの具体的なコードを例として紹介...

MySQL のインデックス障害の一般的なシナリオと回避方法

序文これまでにも、一部の SQL ステートメントを不適切に使用すると MySQL インデックスが失敗...

MySQLトランザクションとSpring分離レベルの実装原理の詳細な説明

1. トランザクションはACID特性を持つ原子性: トランザクションは、トランザクションによって分割...

nginx のスムーズな再起動を実装する方法

1. 背景サーバーの開発プロセスでは、新しいコードや構成をロードするためにサービスを再起動することが...

MySQLのテーブル構造を変更する際に知っておきたいメタデータロックの詳しい解説

序文MySQL を扱ったことがある人なら、テーブル メタデータ ロックの待機についてよく知っているは...

MySQL の group by に関する簡単な説明

目次1. はじめに2. ユーザーテーブルを準備する2.1 グループ化ルール2.2 グループの使用2....

HTML チュートリアル: よく使われる HTML タグのコレクション (5)

関連記事:初心者が学ぶ HTML タグ (4)導入された HTML タグは、必ずしも XHTML 仕...