想了解Linux安裝Nexus3可以看官方文檔筹误,這里說一下docker的方式如何安裝配置析砸。
安裝Nexus
-
搜索
nexus
鏡像
-
拉取鏡像
docker pull sonatype/nexus3
-
查看鏡像是否拉取下來
-
創(chuàng)建nexus的掛載地址并授權(quán)
# 創(chuàng)建掛載地址 mkdir /usr/local/nexus # 給文件夾授權(quán) chmod chmod -R 777 /usr/local/nexus # 后臺運行nexus并掛載出來 docker run -d -p 8081:8081 --name nexus3 -v /usr/local/nexus:/nexus-data sonatype/nexus3
-
訪問Nexus(默認(rèn)賬號:admin,密碼在admin.password文件里面)
配置nexus
-
這些倉庫默認(rèn)就會存在的,你可以直接使用這些倉庫南捂,或者修改一下也可以。為了配置自己的倉庫我們需要先刪掉自帶的倉庫鳖眼。
-
Blob Stores介紹
repositor是需要以Blob格式存儲的黑毅。默認(rèn)的Blol Stores是基于文件系統(tǒng)的,你可以把它理解為一個目錄可以通過
Repository
>Blob Store
來管理存儲媒介钦讳,可以看到下面的默認(rèn)存儲名default
矿瘦,類型File的Blob Store
Blob Stores參數(shù)如下:參數(shù) 含義 Name Blob Stores的名稱,是唯一的 Type 類型愿卒,一般為File State 狀態(tài) Blob count Blob數(shù)目 Total size 現(xiàn)在該存儲目錄的大小 Available space 可用的空間缚去,就是存儲目錄所在分區(qū)的磁盤剩余空間
-
新建Blob Store
點擊Repository
>Blob Store
>Create blob store
- Type: 這個有
File
和S3
兩個選項,這里選File就行琼开。 - Name: 名字隨便起吧易结,我的叫
aen-blob
- Enable Soft Quota: 這個是限制目錄的大小。這邊就不限制了柜候。你要是限制的話就勾上并填入上限的條件和限制的值就好了搞动。
- Path:就是個路徑,在填入Name的時候就會自動生成
最后點擊
Create blob store
就好了 - Type: 這個有
創(chuàng)建hosted類型的倉庫
這個倉庫主要放一些自己封裝的工具類渣刷,自己手動構(gòu)建上傳的包鹦肿,或者中央倉庫找不到的包
hosted有兩種類型的maven倉庫分別為snapshot
和release
,那么該如何區(qū)分了?
snapshot:顧名思義快照的意思辅柴,所以一般放一些不穩(wěn)定的庫箩溃,一天能修改好幾次代碼的庫瞭吃。
release:公開,發(fā)行涣旨。所以這個一般放的都是比較穩(wěn)定的發(fā)行版本-
創(chuàng)建release發(fā)行庫
點擊Repository
>Repositories
>Create repository
歪架,選擇maven2(hosted)。
Name: 隨便起一個名字吧霹陡,maven-releases-aen
Online: 勾選和蚪,設(shè)置這個倉庫是在線還是離線
-
Maven2:
Version Policy: 版本策略,三個選擇分別為:
Release:正式版本
Snapshot:快照版本
Mixed:混合模式
這里選擇Release
烹棉。Layout Policy:布局策略
Strict:嚴(yán)格
Permissive:寬松
這里選擇默認(rèn)的Strict
惠呼。 Storage:
Blob store:選擇此倉庫使用的Blob存儲,這里選擇之前創(chuàng)建的aen-blob峦耘。
Strict Content Type Validation:驗證上傳內(nèi)容格式,這里不勾選旅薄。-
Hosted:
Deployment Policy:部署策略辅髓,三個選擇分別為:
Allow Redeploy:允許重新部署
Disable Redeploy:禁止重新部署
Read-Only:只讀因為是release發(fā)行庫,這里選
Disable Redeploy
少梁。
-
創(chuàng)建snapshot快照庫
和創(chuàng)建release發(fā)行庫一樣洛口,點擊Repository
>Repositories
>Create repository
,選擇maven2(hosted)凯沪。
-
創(chuàng)建一個代理(proxy類型) 倉庫
點擊Repository
>Repositories
>Create repository
第焰,選擇maven2(proxy)。
- Proxy: http://maven.aliyun.com/nexus/content/groups/public
- 看上圖妨马,其它的都是默認(rèn)設(shè)置
-
創(chuàng)建一個組(group類型)倉庫
點擊Repository
>Repositories
>Create repository
挺举,選擇maven2(gruop)。
組里里面順序建議阿里云的代理倉庫放第一烘跺,因為maven代理倉庫下載順序是從上往下的湘纵,建議將速度快的倉庫放在最前面。
驗證測試
-
假裝你們都有
jdk
和maven
環(huán)境了滤淳,修改maven里面的設(shè)置比如我的D:\apache\apache-maven-3.5.4\conf\settings.xml
梧喷。記得備份一下這個文件不然修改錯了就麻煩了。<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!--本地倉庫地址--> <localRepository>D:\m2\repository</localRepository> <pluginGroups> </pluginGroups> <proxies> </proxies> <servers> <server> <id>nexus-aen</id> <username>admin</username> <password>Nexus2020</password> </server> <server> <id>releases</id> <username>admin</username> <password>Nexus2020</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>Nexus2020</password> </server> </servers> <mirrors> <mirror> <id>nexus-aen</id> <name>internal nexus repository</name> <!--鏡像采用配置好的組的地址--> <url>http://192.168.31.236:8081/repository/maven-public-aen/</url> <mirrorOf>!internal.repo,*</mirrorOf> </mirror> </mirrors> <profiles> <profile> <!--ID用來確定該profile的唯一標(biāo)識--> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> <profile> <id>nexus-pro</id> <!-- 遠程倉庫列表 --> <repositories> <repository> <id>nexus</id> <name>Nexus Central</name> <!-- 虛擬的URL形式,指向鏡像的URL--> <url>http://192.168.31.236:8081/repository/maven-public-aen/</url> <layout>default</layout> <!-- 表示可以從這個倉庫下載releases版本的構(gòu)件--> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> </releases> <!-- 表示可以從這個倉庫下載snapshot版本的構(gòu)件 --> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> <!-- 插件倉庫列表 --> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus Central</name> <url>http://192.168.31.236:8081/repository/maven-public-aen/</url> <layout>default</layout> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>nexus-pro</activeProfile> <activeProfile>jdk-1.8</activeProfile> </activeProfiles> </settings>
-
在需要打包的pom文件里面添加
distributionManagement
屬性<!-- 使用分發(fā)管理將本項目打成jar包脖咐,直接上傳到指定服務(wù)器 --> <distributionManagement> <!--正式版本--> <repository> <!-- nexus服務(wù)器中用戶名:在settings.xml中<server>的id--> <id>releases</id> <!-- 這個名稱自己定義 --> <name>Release repository</name> <url>http://192.168.31.236:8081/repository/maven-releases-aen/</url> </repository> <!--快照--> <snapshotRepository> <!-- nexus服務(wù)器中用戶名:在settings.xml中<server>的id--> <id>snapshots</id> <!-- 這個名稱自己定義 --> <name>Snapshots repository</name> <url>http://192.168.31.236:8081/repository/maven-snapshots-aen/</url> </snapshotRepository> </distributionManagement>
-
在打包上傳之前我們先看一下maven-public-aen和maven-releases-aen庫
-
打包只需要點點點就好了
-
現(xiàn)在我們再來看一下maven-public-aen和maven-releases-aen庫
好了到這里我們的maven倉庫就搭建測試完成了
參考地址:
https://help.sonatype.com/repomanager3
https://hub.docker.com/r/sonatype/nexus3/
https://blog.csdn.net/wc1695040842/article/details/102575686