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

推薦する

mysql を解決: エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードの使用: NO/YES)

1. 問題時々Mysqlにログインしてパスワードを入力すると、この状況が発生しますmysql -u...

Ubuntu 20.04 LTS で Java 開発環境を構成する

Java開発キットjdkをダウンロードするJDK のダウンロード アドレスはhttp://www.o...

CSS フロート(float, clear)の人気の解説と体験談

私はかなり昔に CSS に触れましたが、フローティングについてはいつも混乱していました。私の理解が浅...

vue-element-admin プロジェクトのインポートとエクスポートの実装

vue-element-admin インポートコンポーネントのカプセル化テンプレートとスタイルまず、...

CSSで検索ボックスを非表示にする機能を実装します(アニメーション順方向と逆方向のシーケンス)

上部のメニュー バーに検索ボックスを配置するのは一般的なシナリオですが、検索機能がそれほど頻繁に使用...

MySQL アーキテクチャのナレッジポイントの概要

1. データベースとデータベースインスタンスMySQL の研究では、データベースとデータベース イン...

埋め込みJavaScriptと外部リンクの基本的な応用方法

目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...

HTMLページでチェックボックスを操作する方法

チェックボックスは Web ページで非常によく使用されます。e コマースの Web サイトでもプラッ...

CentOS6.5 でファイル共有サービス Samba を構築するチュートリアル

Samba サービス:このコンテンツはサンバサービス学習者の参考用ですケースの説明:企業の管理者は、...

MySQL 8.0.17 のインストールと設定のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.17のインストールと設定のグラフィックチュートリアルを記...

バックエンドデータを取得するためのVue Elementフロントエンドアプリケーション開発

目次概要1. バックエンドデータの取得と処理2. インターフェース表示処理概要前回のエッセイ「ステッ...

HTML+CSS+JS でスタックカルーセル効果を実装するサンプルコード

効果:スライドショーが一方向に動く場合、各画像のサイズ、位置、透明度、レベルを変更する必要があります...

JavaScript 組み込みの日付と時刻の書式設定のサンプル コード

1. 基礎知識(日付オブジェクトのメソッド) 😜 getFullYear() は年を表す4桁の数字を...

CSS における XHTML タグの対応する属性と使用法

XHTML CSS を使って Web ページをデザインし始めた頃は、タグの使用経験も少なく、あまり気...

WeChatアプレットコンポーネント開発:視覚的な映画座席選択機能

目次1. はじめに1. コンポーネントデータ2. コンポーネントページのレイアウト1. ロゴエリアの...