nexus3について
Java開発者は、多くの場合、次の目的でnexus3をイントラネットに展開します。
- 中央倉庫のキャッシュ。
- イントラネットの専用倉庫。
次に、これら2つの機能を別々に実行します。
環境情報
- nexus3バージョン:3.19.1
- mavenバージョン:3.6.3
- JDK:1.8.0_191
nexus3の導入
この記事では、nexus3の使用に焦点を当てており、ここでは展開の詳細については説明していません。展開にはdockerを使用することをお勧めします。ホームNASのdocker経由で展開しています。詳細については、「Qunhui DS218 + do maven private server(nexus3)」を参照してください
キャッシュとして使用される新しい倉庫
ここの中央倉庫は、優れた速度と安定性を備えたAlibaba Cloudを使用しています。
- 新しい倉庫を作成する操作は次のとおりです。
- 以下の赤いボックスに示すように、タイプ選択ページでmaven2(プロキシ)を選択します。
- 次のページの2つの場所、名前:aliyun-proxy、リモートストレージ:http://maven.aliyun.com/nexus/content/groups/public/に入力するだけです。
- フォームを送信したら、リストページに戻り、次のように、新しい倉庫のコピーボタンをクリックして倉庫の住所を取得します。
- このウェアハウスのアドレス(http://192.168.50.43:8081/repository/aliyun-proxy/)を書き留めます。イントラネット上のすべてのコンピューターは、このアドレスから中央のウェアハウスjarパッケージを取得できます。セットアップ方法については後で説明します。
個人倉庫として使用される新築倉庫
中央倉庫にないjar、およびプロジェクトでリリースされた2パーティのライブラリの場合、それらはプライベートウェアハウスに保存できます。
- 新しい倉庫を作成し、以下の赤いボックスに示すように、タイプとしてmaven2(ホストされている)を選択します。
- 名前:nexus-private、その他を変更する必要はありません:
- ここで注意する必要があるのは、作成したプライベートウェアハウスを使用して自己リリース型の2パーティライブラリを保存する場合は、2つをビルドすることです。1つは公式にリリースされたバージョンのポリシータイプを保存し、もう1つは開発を保存します(ローカルにキャッシュしないでください)、バージョンポリシータイプはスナップショットです。この記事では、簡単にするためにリリースタイプのみを作成しました。
- この倉庫のアドレスを書き留めます:http : //192.168.50.43 : 8081 / repository / nexus-private/
- これまでのところ、ウェアハウスが作成されました。次の2つのウェアハウスがあります。
キャッシュタイプ:http://192.168.50.43:8081/repository/aliyun-proxy/
ローカルプライベートタイプ:http://192.168.50.43:8081/repository/nexus -プライベート/ - ウェアハウスを使用して、次に開発環境にMavenをセットアップします。
Maven設定(キャッシュリポジトリを使用)
最初にaliyun-proxyウェアハウスをセットアップして、nexus3のキャッシュ機能を使用できるようにします。
- maven構成ファイルsettings.xmlを開きます。
- ミラーノードを見つけ、サーバーを追加して構成します。内容は次のとおりです。
<mirror>
<id>aliyun-proxy</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.50.43:8081/repository/aliyun-proxy/</url>
</mirror>
- キャッシュウェアハウスの設定が完了しました。次に、Mavenプロジェクトをビルドして確認してください。最も単純なMavenプロジェクトのpom.xmlファイルは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<project 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bolingcavalry</groupId>
<artifactId>nexus3demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
</dependencies>
</project>
- 以下に示すように、pom.xmlがあるディレクトリでコマンドを実行します。mvn clean compile -U -DskipTests、中央倉庫のjarがnexus3を介してダウンロードされ、プロジェクトが正常にビルドされていることがわかります。
中央倉庫にない壺
プライベートウェアハウスの重要な機能は、中央のウェアハウスの外でjarダウンロードを提供することです。例を見てみましょう:
- 中央リポジトリに存在しないjarをpom.xmlに追加します。
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-schema-registry-client</artifactId>
<version>3.3.1</version>
</dependency>
- ビルドに行くと、エラーが発生します:
上記の問題は一般的です。いくつかのjarは中央倉庫にリリースされていません。mavenでビルドするときにそれらが見つからない場合、エラーが発生します。
jarを専用倉庫にアップロードする
上記の問題の解決策:このjarを見つけます->プライベートウェアハウスにアップロードします-> mavenのビルド時にこのjarをプライベートウェアハウスからダウンロードします。
- アイデアを念頭に置いて、上記の問題を専用倉庫で解決してみましょう。
- 上記のjarをローカルのダウンロードアドレスにダウンロードします。http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/3.3.1/kafka-schema-registry-client-3.3.1。瓶
- nexus3にログインし、以下の手順に従います。
- フォームに入力し、下の図の手順に従ってjarファイルをnexus3に送信します。
- プライベートウェアハウスにjarがあるので、mavenがこのjarファイルをどのように使用するかを見てみましょう。
mavenはプライベートリポジトリを使用します
- Maven構成ファイルsettings.xmlを開きます。
- プロファイルノードを見つけて、次のようにプロファイル構成を追加します。
- 検索activeProfiles追加し、ノードactiveProfile次のように、設定を:
<activeProfile>nexus3</activeProfile>
- 新しく追加されたミラーを見つけ、mirrorOfノードの値を変更します。変更されたミラーノードの値は次のとおりです。
<mirror>
<id>aliyun-proxy</id>
<mirrorOf>external:local-nexus3</mirrorOf>
<url>http://192.168.50.43:8081/repository/aliyun-proxy/</url>
</mirror>
- mirrorOfの値は、前の*からexternal:local-nexus3に変更されます。これは、転送ロジックの除外操作です。これを実行すると、local-nexus3ウェアハウスのリクエストはプライベートウェアハウスに転送され、他のすべてのリクエストはキャッシュに転送されます倉庫aliyun-proxy ;
- 今すぐmavenプロジェクトをビルドし、最後に今度は正常にビルドします。次に示すように、kafka-schema-registry-clientに関連するデータがプライベートウェアハウスからダウンロードされます。
これまでのところ、nexus3の共通キャッシュとプライベートウェアハウスの機能が試されています。私たちは非公開のMavenリポジトリーを構築しています。この記事が参考になることを願っています。