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のさまざまなロックの概念的理解

推薦する

Vue の get リクエストと post リクエストの違いのまとめ

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

Docker コンテナで DockerFile を使用して複数の Tomcat サービスをデプロイする手順

1. [admin@JD ~]$ cd opt #ルートディレクトリにoptと入力2. [admin...

ウェブデザイン必携ハンドブック 216 ウェブセーフカラー

Web ページ上の色の表現は、さまざまな要因によって影響を受けます。Web ページで非常に美しい配色...

MySQL の lru リンク リストの簡単な分析

1. 従来のLRUリンクリストについて簡単に説明するLRU:最も最近使われなかったものLRU リンク...

Node.js コード実行をバイパスするためのヒントのまとめ

目次1. 子プロセス2. nodejsでのコマンド実行2.1 16進数エンコード2.2 ユニコードエ...

Expressプロジェクトファイルディレクトリの説明と詳細な機能の説明

app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...

最もよく使われるHTMLエスケープシーケンス

HTML では、<、>、& などは特別な意味を持ち (<、> はリン...

テキストまたはJSONを返すようにnginxを設定する方法

特定のインターフェースをリクエストするときに、指定されたテキスト文字列または JSON 文字列を返す...

Docker-compose ネットワークの詳細な例

今日は Docker でのネットワーク設定を試し、後で忘れないようにプロセスを記録しました。 (シス...

MySQLデータベーストリガーの詳細な説明

目次1 はじめに2 トリガーの紹介3 トリガーを作成する4 トリガーを表示5. トリガーの削除6 結...

MySQL データベース SELECT クエリ式分析

データ管理の大部分は検索であり、SELECT はその大部分を占めています。 SELECT selec...

Vue3のdefineComponentの役割についての簡単な説明

目次defineComponent オーバーロード関数開発実務defineComponent 関数は...

Linux C バックグラウンドサービスプログラムの単一プロセス制御の実装

導入通常、バックグラウンド サーバー プログラムには 1 つのプロセスのみが必要ですが、単一のプロセ...

Vue カプセル化 TabBar コンポーネントの完全なステップ記録

目次実装のアイデア:ステップ 1: TabBar と TabBarItem のコンポーネント カプセ...

MySQL公式エクスポートツールmysqlpumpの使用

目次導入説明書実際の経験長所と短所総括する導入mysqlpump は mysqldump の派生です...