Nexus3 のデプロイ、構成 + SpringBoot プロジェクトのデモ

Docker が Nexus をデプロイする

Nexus3 イメージを検索: [root@localhost ~]# docker search nexus

Nexus3 イメージをプルします: [root@localhost ~]# docker pull sonatype/nexus3

Nexus3 を起動する前に、仮想マシンのポートが占有されているかどうかを確認します: [root@localhost ~]# netstat -nultp

Docker Hub経由でインストール手順を表示する

 docker 自動起動サービスを追加します。具体的な起動コマンドは次のとおりです。

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

もちろん、必要に応じてホストをマウントしてインターネット上のパスを見つけてインストールすることもできます。インストールは完了しました。ログインアドレスは次のとおりです。

http://192.168.56.100:8081/

初めてログインするときは、管理者パスワードを入力する必要があります。

コマンドラインを使用してコンテナにログインします: [root@localhost ~]# docker exec -it af765874d009 /bin/bash

cat /nexus-data/admin.password を使用してパスワードを表示します。ログイン後にパスワードを変更するだけです。

構成

倉庫保管構成

「リポジトリ」-->「Blob ストア」に移動し 、オブジェクト ストレージを構成します。

両方のストレージにサイズ制限を設定する必要があることに注意してください。そうしないと、ハードディスクが簡単にバーストしてしまいます。

倉庫清掃戦略

「リポジトリ」-->「クリーンアップ ポリシー」に移動し 、ストレージ クリーンアップ ポリシーを構成します。

倉庫 - 倉庫構成

「リポジトリ」-->「リポジトリ」に移動し 、ウェアハウスを構成します。

倉庫には次の 3 つのタイプがあります。

  • proxy、プロキシ ウェアハウス、つまり、外部ウェアハウスのプロキシ。このウェアハウスは読み取り専用で、キャッシュできます。
  • hosted、ホストされたウェアハウス (プライベート ウェアハウスとも呼ばれる) では、このウェアハウスにパッケージをアップロードできます。
  • グループ、ウェアハウス グループ、これは複数のプロキシ、ホストされたウェアハウス、またはその他のグループ ウェアハウスを含めることができるコンテナです。その機能は、開発者が参照するときに URL を入力できるようにすることであり、これも読み取り専用です。

プロキシは次のとおりです。

 次のようにホストされます。

Release は jar パッケージの正式バージョンです。POM モジュールによって宣言されたバージョンにsnapshotという単語が含まれている場合はスナップショットにリリースされ、それ以外の場合はリリース ライブラリにリリースされます。例: <バージョン>1.0.1</バージョン>

スナップショット テスト バージョンの jar パッケージ。POM モジュールによって宣言されたバージョンにsnapshotという単語が含まれる場合はスナップショットに公開され、それ以外の場合はリリース ライブラリに公開されます。例: <バージョン>0.0.1-SNAPSHOT</version>

 グループ倉庫は以下の通りです。

Nexus Maven 構成手順

  <mirrors>
	 <!--
    <mirror>
		<id>aliyunmaven</id>
		<mirrorOf>*</mirrorOf>
		<name>阿里云公共仓库</name>
		<url>https://maven.aliyun.com/repository/public</url>
	</mirror>
	-->
	<mirror>
		<id>maven-public</id>
		<!--<mirrorOf>*</mirrorOf>-->
		<mirrorOf>central</mirrorOf>
		<name>maven-public</name>
		<url>http://192.168.56.100:8081/repository/maven-public/</url>
	</mirror>

  </mirrors>

Maven ミラー構成

aliyun ウェアハウスは Maven 設定ファイル settings.xml で設定されており、その設定は次のとおりです。

<mirror>
	<id>aliyun maven</id>
	<name>aliyun</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>*</mirrorOf>
</mirror>

デフォルトでは、すべてのリクエストはダウンロードのために Alibaba Cloud に転送されますが、一部の依存パッケージは aliyun ウェアハウスにありません。実際、開発チームは、上記の設定により、依存パッケージのウェアハウス アドレスを pom.xml に指定しました。すべての依存パッケージのダウンロード Alibaba Cloud に切り替える場合、鍵は mirroOf 設定にあります。

mirrorOf フィールドの構成は次のとおりです 

* = 表示拦截所有请求,使用该仓库
external:* = 表示本地仓库的中没有的依赖才会使用该仓库 
central = 表示拦截去中央仓库的请求,使用该仓库
# setting.xml不做任何配置时就是使用的中央仓库,也就是maven官方仓库https://repo.maven.apache.org/maven2
*,!repo_id = 除repo_id这个依赖包外,其他依赖都是用该仓库
repo1,repo2 = 表示只有 repo1 和 repo2 的依赖包才会使用该仓库,会代替pom的配置

開発中、依存パッケージの指定されたウェアハウスは次のように pom で構成されます。

<repository>
	<id>getui-nexus</id>
	<url>http://mvn.gt.igexin.com/nexus/content/repositories/releases/</url>
</repository>

現時点で getui-nexus 依存関係パッケージをダウンロードできない場合は、エラーが報告され Cannot resolve com.gexin.platform:gexin-rp-sdk-http:4.1.1.4 、Maven 構成ファイルが変更されます。

<!-- 在maven安装目录下的conf/setting.xml -->
<mirror>
	<id>aliyun maven</id>
	<name>aliyun</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>*,!getui-nexus</mirrorOf>     <!-- 关注这条即可,与pom中的id对应 -->
</mirror>

この時点で再度ビルドして getui-nexus 依存関係パッケージをダウンロードすると、Alibaba Cloud ウェアハウスからダウンロードされるのではなく、プロジェクトの pom からダウンロードされます。

または

<!-- 在maven安装目录下的conf/setting.xml -->
<mirror>
	<id>aliyun maven</id>
	<name>aliyun</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>central</mirrorOf>     <!-- 关注这条即可,与pom中的id对应 -->
</mirror>

Maven アクセス ウェアハウス シーケンス


ローカル ウェアハウス -> プライベート サーバー (プロファイル) -> リモート ウェアハウス (リポジトリ) -> ミラー ウェアハウス (ミラー) -> 中央ウェアハウス (セントラル) 範囲を簡略化するために、ローカル、プライベート サーバー、リモートの 3 つのウェアハウス タイプに分けられます。. リモート、ミラー、両方のセントラル ウェアハウスがリモート ウェアハウスに属している場合、リモート ウェアハウスの優先順位はローカル > プライベート サーバー > リモートです。

倉庫へのデモ提出

Spring 公式 Web サイトのテンプレートを使用してSpringboot プロジェクトを作成します。

Springboot プロジェクトの 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.14-SNAPSHOT</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.xuhuan</groupId>
	<artifactId>springboot-demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
	<distributionManagement>
		<repository>
			<uniqueVersion>false</uniqueVersion>
			<id>maven-releases</id>
			<name>maven-releases</name>
			<url>http://192.168.56.100:8081/repository/maven-releases/</url>
		</repository>
		<snapshotRepository>
			<uniqueVersion>false</uniqueVersion>
			<id>maven-snapshots</id>
			<name>maven-snapshots</name>
			<url>http://192.168.56.100:8081/repository/maven-snapshots/</url>
		</snapshotRepository>
	</distributionManagement>
</project>

最後にクリーンにしてパッケージ化し、Nexus プライベート サーバーに公開します。

おすすめ

転載: blog.csdn.net/juanxiaseng0838/article/details/131832125