最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nexus存儲(chǔ)庫(kù)管理器搭建-Maven私服詳解

 更新時(shí)間:2025年06月12日 11:12:29   作者:微楓Micromaple  
這篇文章主要介紹了Nexus存儲(chǔ)庫(kù)管理器搭建-Maven私服,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

在企業(yè)開(kāi)發(fā)過(guò)程中,就比如說(shuō)我們Java程序員,一般都是使用Spring或者是SpringBoot項(xiàng)目進(jìn)行開(kāi)發(fā)的,基本上都是基于Maven或者是Gradle構(gòu)建的項(xiàng)目,如果說(shuō)我們使用的Maven倉(cāng)庫(kù)是中央倉(cāng)庫(kù)的話(huà),在企業(yè)內(nèi)部協(xié)同開(kāi)發(fā)的時(shí)候,會(huì)帶來(lái)諸多不便。

例如,當(dāng)我們需要協(xié)同開(kāi)發(fā)時(shí),難免會(huì)對(duì)Jar包進(jìn)行管理,不可能將我們的Jar包上傳至中央倉(cāng)庫(kù)去,所以我們需要搭建屬于內(nèi)部的Maven倉(cāng)庫(kù)。Maven私服倉(cāng)庫(kù)也有者諸多好處。

本文詳細(xì)講述了 Maven私服的搭建、Jar包部署以及SpringBoot配置。

一、概述

Nexus 是一個(gè)存儲(chǔ)庫(kù)管理器,極大地簡(jiǎn)化了內(nèi)部倉(cāng)庫(kù)的維護(hù)和外部倉(cāng)庫(kù)的訪(fǎng)問(wèn)。

有非常簡(jiǎn)單便捷的用戶(hù)操作界面,方便對(duì)Nexus操作及管理。

在 Nexus 3.0 版本后,增加了對(duì) Docker、NetGet、npm、Bower的支持。

二、為什么要使用Maven私服倉(cāng)庫(kù)

大家可能會(huì)有一個(gè)疑問(wèn),為啥要搭建Maven私服呢?使用官方的Maven倉(cāng)庫(kù)不就可以嗎?而且國(guó)內(nèi)也有鏡像加速地址,比如阿里等。而我們?nèi)ゴ罱ㄒ粋€(gè)Maven私服,需要在服務(wù)器單獨(dú)進(jìn)行搭建,還要進(jìn)行維護(hù)。

針對(duì)這些問(wèn)題,下面是使用Maven私服的好處:

  • 托管內(nèi)部存儲(chǔ)庫(kù): 可以共享內(nèi)部依賴(lài)項(xiàng),以方便將依賴(lài)項(xiàng)安裝在每個(gè)開(kāi)發(fā)人員的本地存儲(chǔ)庫(kù)中。
  • 加速M(fèi)aven構(gòu)建: 當(dāng)在 Maven 中運(yùn)行多模塊項(xiàng)目時(shí),如果項(xiàng)目依賴(lài)于幾個(gè) SNAPSHOT,或者沒(méi)有指定插件版本,Maven 可能必須向遠(yuǎn)程存儲(chǔ)庫(kù)發(fā)出數(shù)十到數(shù)百個(gè)請(qǐng)求。安裝 Nexus 的本地實(shí)例后將構(gòu)建時(shí)間大大的縮減了。
  • 節(jié)省帶寬: 如果沒(méi)有 Maven 私服,開(kāi)發(fā)人員會(huì)浪費(fèi)帶寬一遍又一遍的從中央倉(cāng)庫(kù)下載相同的文件。使用 Nexus 來(lái)保留本地緩存將節(jié)省大量帶寬。
  • 控制和審計(jì): 可以有效的控制開(kāi)發(fā)團(tuán)隊(duì)將使用哪些依賴(lài)項(xiàng)。
  • 可上傳部署第三方Jar: 可以方便的上傳第三方Jar包,并對(duì)其進(jìn)行管理。
  • 可預(yù)測(cè)性和穩(wěn)定性: 依靠中央倉(cāng)庫(kù)進(jìn)行日常運(yùn)營(yíng)也意味著依賴(lài)于互聯(lián)網(wǎng)連接,如果有 Nexus ,則可以確保即使失去互聯(lián)網(wǎng)連接,構(gòu)建工作也可以繼續(xù)進(jìn)行。

三、搭建Nexus

這里使用docker來(lái)搭建Nexus。

1)、創(chuàng)建文件夾

mkdir -p /usr/local/docker/nexus

2)、創(chuàng)建docker-compose文件

vi /usr/local/docker/nexus/docker-compose.yml

docker-compose.yml內(nèi)容如下:

version: '3.1'
services:
  nexus:
    restart: always
    image: sonatype/nexus3
    container_name: nexus
    privileged: true
    ports:
      - 8081:8081
    volumes:
      - ./data:/nexus-data

3)、啟動(dòng)

啟動(dòng)命令

docker-compose up -d

如果遇到文件夾權(quán)限問(wèn)題,使用命令更改文件夾權(quán)限chmod -R 777 data,然后在重新啟動(dòng)

4)、訪(fǎng)問(wèn)

啟動(dòng)完成后,瀏覽器訪(fǎng)問(wèn)http://IP:8081/,效果如下:

5)、登錄

登錄Nexus,點(diǎn)擊右上角 Sign in,第一次登錄會(huì)提示admin的密碼在哪,根據(jù)提示去相關(guān)目錄查看。docker-compose中映射nexus-data目錄為/usr/local/docker/nexus/data目錄,所以我們?cè)?code>data目錄去找admin.password文件即可看到密碼了。

查看密碼

$ cat admin.password 
1cf97ae1-270f-47e5-8c83-f5af04af34af

登錄后會(huì)提示設(shè)置新的密碼,設(shè)置一個(gè)記得住的密碼即可。

四、SpringBoot整合

my-project項(xiàng)目為例。

4.1、pom.xml配置

有一個(gè)統(tǒng)一的依賴(lài)管理模塊my-project-dependencies,在pom.xml中增加部署服務(wù)器的 Maven 節(jié)點(diǎn)內(nèi)容以及倉(cāng)庫(kù)地址,內(nèi)容如下:

<!-- 部署服務(wù)器的 Maven 節(jié)點(diǎn) -->
<distributionManagement>
	<repository>
		<id>nexus-releases</id>
		<name>Nexus Release Repository</name>
		<url>http://192.168.110.158:8081/repository/maven-releases/</url>
	</repository>
	<snapshotRepository>
		<id>nexus-snapshots</id>
		<name>Nexus Snapshot Repository</name>
		<url>http://192.168.110.158:8081/repository/maven-snapshots/</url>
	</snapshotRepository>
</distributionManagement>

<repositories>
	<repository>
		<id>nexus</id>
		<name>Nexus Repository</name>
		<url>http://192.168.110.158:8081/repository/maven-public/</url>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
		<releases>
			<enabled>true</enabled>
		</releases>
	</repository>

	<repository>
		<id>aliyun-repos</id>
		<name>Aliyun Repository</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
		<releases>
			<enabled>true</enabled>
		</releases>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</repository>

	<repository>
		<id>sonatype-repos</id>
		<name>Sonatype Repository</name>
		<url>https://oss.sonatype.org/content/groups/public</url>
		<releases>
			<enabled>true</enabled>
		</releases>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</repository>
	<repository>
		<id>sonatype-repos-s</id>
		<name>Sonatype Repository</name>
		<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		<releases>
			<enabled>false</enabled>
		</releases>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
	</repository>

	<repository>
		<id>spring-snapshots</id>
		<name>Spring Snapshots</name>
		<url>https://repo.spring.io/snapshot</url>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
	</repository>
	<repository>
		<id>spring-milestones</id>
		<name>Spring Milestones</name>
		<url>https://repo.spring.io/milestone</url>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</repository>
</repositories>

<pluginRepositories>
	<pluginRepository>
		<id>nexus</id>
		<name>Nexus Plugin Repository</name>
		<url>http://192.168.110.158:8081/repository/maven-public/</url>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
		<releases>
			<enabled>true</enabled>
		</releases>
	</pluginRepository>

	<pluginRepository>
		<id>aliyun-repos</id>
		<name>Aliyun Repository</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
		<releases>
			<enabled>true</enabled>
		</releases>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</pluginRepository>
</pluginRepositories>

將IP地址更改為自己的就可以了

4.2、測(cè)試部署

使用dos窗口進(jìn)入my-project-dependencies目錄下,執(zhí)行部署命令

mvn deploy

此時(shí)出現(xiàn)失敗,關(guān)鍵信息Return code is: 401, ReasonPhrase: Unauthorized. ,錯(cuò)誤問(wèn)題是未授權(quán)

我們打開(kāi)我們配置的Maven的settings.xml,在servers節(jié)點(diǎn)增加如下配置

<server>
  <id>nexus-releases</id>
  <username>admin</username>
  <password>123456</password>
</server>
<server>
  <id>nexus-snapshots</id>
  <username>admin</username>
  <password>123456</password>
</server>
  • id: 與構(gòu)建項(xiàng)目的pom.xml中的repository的id一致。
  • username: 部署用戶(hù)(可在Nexus中單獨(dú)創(chuàng)建一個(gè)用戶(hù)專(zhuān)門(mén)拿來(lái)部署,這里直接使用admin)
  • password: 登錄密碼

配置好這些后,先將原先的命令窗口關(guān)閉,打開(kāi)一個(gè)新的,在執(zhí)行一次部署命令

mvn deploy

部署成功,接著我們打開(kāi)Nexus端查看部署上來(lái)的項(xiàng)目

在 Maven 私服中也可以看到,大功告成~

五、上傳部署Jar包

在開(kāi)發(fā)過(guò)程中,我們可能會(huì)單獨(dú)的對(duì)Jar進(jìn)行管理,而我們手中又只有一個(gè)Jar文件。這時(shí),我們需要使用到Nexus的上傳功能

1)、點(diǎn)擊Upload->選擇需要上傳的倉(cāng)庫(kù)

2)、上傳Jar包,填寫(xiě)表單信息

3)、上傳成功

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • feign調(diào)用返回object類(lèi)型轉(zhuǎn)換方式

    feign調(diào)用返回object類(lèi)型轉(zhuǎn)換方式

    這篇文章主要介紹了feign調(diào)用返回object類(lèi)型轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java?-jar指定外部配置文件操作步驟

    java?-jar指定外部配置文件操作步驟

    這篇文章主要給大家介紹了關(guān)于java?-jar指定外部配置文件的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Java如何獲取當(dāng)天零點(diǎn)和明天零點(diǎn)的時(shí)間和時(shí)間戳

    Java如何獲取當(dāng)天零點(diǎn)和明天零點(diǎn)的時(shí)間和時(shí)間戳

    這篇文章主要介紹了如何在Java中獲取當(dāng)天零點(diǎn)和明天零點(diǎn)的時(shí)間和時(shí)間戳,并提供了示例代碼,新手小白完全可以通過(guò)文中介紹的代碼實(shí)現(xiàn),需要的朋友可以參考下
    2025-03-03
  • Mybatis-plus中IService接口的基本使用步驟

    Mybatis-plus中IService接口的基本使用步驟

    Mybatis-plus是一個(gè)Mybatis的增強(qiáng)工具,它提供了很多便捷的方法來(lái)簡(jiǎn)化開(kāi)發(fā),IService是Mybatis-plus提供的通用service接口,封裝了常用的數(shù)據(jù)庫(kù)操作方法,包括增刪改查等,下面這篇文章主要給大家介紹了關(guān)于Mybatis-plus中IService接口的基本使用步驟,需要的朋友可以參考下
    2023-06-06
  • Spring Boot與Docker部署詳解

    Spring Boot與Docker部署詳解

    本篇文章主要介紹了Spring Boot與Docker部署詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java中集合遍歷的方法示例代碼展示

    Java中集合遍歷的方法示例代碼展示

    在 Java 編程中,集合(Collection)是用于存儲(chǔ)和操作一組對(duì)象的重要工具,無(wú)論是數(shù)組、列表(List)、集合(Set),還是映射(Map),它們都提供了在不同場(chǎng)景下靈活使用的數(shù)據(jù)結(jié)構(gòu),這篇文章主要介紹了Java中集合遍歷的方法示例代碼展示,需要的朋友可以參考下
    2024-08-08
  • 用Java實(shí)現(xiàn)OCR功能揭秘

    用Java實(shí)現(xiàn)OCR功能揭秘

    想知道如何用Java實(shí)現(xiàn)OCR功能嗎?本指南將揭秘這一神秘技術(shù),讓你輕松掌握OCR的實(shí)現(xiàn)方法,無(wú)論是想提升技能還是解決問(wèn)題,這篇指南都能幫助你一臂之力,需要的朋友可以參考下
    2023-12-12
  • Java注解詳解及實(shí)現(xiàn)自定義注解的方法

    Java注解詳解及實(shí)現(xiàn)自定義注解的方法

    這篇文章主要介紹了Java注解詳解及實(shí)現(xiàn)自定義注解的方法,本文給大家介紹了jdk中預(yù)定義的一些注解及自定義注解的相關(guān)知識(shí),需要的朋友可以參考下
    2022-06-06
  • java調(diào)用百度的接口獲取起-止位置的距離

    java調(diào)用百度的接口獲取起-止位置的距離

    本文主要介紹了java調(diào)用百度的接口獲取起-止位置的距離,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • java實(shí)現(xiàn)打印日歷

    java實(shí)現(xiàn)打印日歷

    這篇文章主要為大家詳細(xì)介紹了java打印日歷的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01

最新評(píng)論

宁蒗| 昭苏县| 高要市| 沙湾县| 正定县| 鱼台县| 龙岩市| 彭山县| 富蕴县| 南汇区| 建湖县| 中阳县| 固始县| 宁德市| 榆树市| 昌平区| 都江堰市| 遂宁市| 肥东县| 拜泉县| 大关县| 天等县| 武邑县| 迭部县| 莒南县| 博乐市| 磐石市| 卢氏县| 德格县| 平舆县| 泸水县| 米泉市| 祁连县| 大埔县| 忻城县| 开平市| 延安市| 丰台区| 神池县| 琼中| 兴和县|