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

推薦する

HTML タグの表示モード (ブロックレベル タグ、インライン タグ、インライン ブロック タグ) に関する簡単な説明

今日の講義では、HTML におけるタグの表示モードについてお話ししましたが、これはブロックレベルタグ...

MySQLデータ移行の概要

目次序文: 1. データ移行について2. 移行計画と留意点要約:序文:日常業務では、テーブル、データ...

Dockerコマンドの学習を1つの記事にまとめる

目次導入ミラーリポジトリログイン引く押す検索ローカル画像管理画像rmiタグ建てる歴史保存負荷輸入コン...

アイデアコンパイラvueインデントエラー問題シナリオの分析

プロジェクトシナリオ: Vueプロジェクトを実行したらインデントエラーが出ました。ideaコンパイラ...

Vue でカスタムパスのエイリアスを設定する方法

Vue でカスタム パス エイリアスを設定する方法日常の開発では、モジュールやコンポーネントをインポ...

MySQLクエリ最適化: 100万件のデータに対するテーブル最適化ソリューション

1. 2つのクエリエンジン(myIsamエンジン)のクエリ速度InnoDB はテーブル内の特定の行数...

CSS3アニメーションを使用して、小さい円から大きい円に拡大し、外側に広がる効果を実現する例

序文この記事では、CSS3アニメーションを使用して、円が小さいものから大きく拡大し、外側に広がる効果...

editplus の Zen コーディング例コードの説明

たとえば、次のように入力します。 XML/HTML コードdiv#ページ>(div#ヘッダー&...

Docker ベースの Tomcat クラスタと Nginx ロード バランシングの展開の概要

目次前面に書かれた1. Ngixnイメージの作成2. Java Web (Tomcat) アプリケー...

Weibo の一括フォロー解除機能を実装する JavaScript コード

Weibo ユーザーのフォローを一括で解除するクールな JavaScript コードWeibo には...

JavaScript の知識: コンストラクタも関数である

目次1. コンストラクタの定義と呼び出し2. 新しいキーワードの目的3. コンストラクタの問題: メ...

CentOS 6.x のインストール時に発生するエラー「ディスク sda に BIOS RAID メタデータが含まれています」の解決方法

今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...

HTML テーブル マークアップ チュートリアル (1): テーブルの作成

<br />これは 123WORDPRESS.COM が提供する一連のチュートリアルです...

Dockerイメージをパッケージ化し、リモートサーバーにプッシュしてk8sにデプロイする方法

目次1. Dockerファイル2. pom 構成3. イメージプッシュ4. k8s デプロイメント前...

HTML メタビューポート属性の説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...