docker run --restart="always" -d -p 8081:8081 --name nexus -v /opt/data/nexus-data:/nexus-data sonatype/nexus3
注意點(diǎn):若出現(xiàn)權(quán)限問(wèn)題
chmod 777 nexus-data
內(nèi)存占用情況:
image.png
1、歡迎頁(yè)(默認(rèn)賬號(hào):admin 默認(rèn)密碼:admin123)

image.png
2、倉(cāng)庫(kù)介紹

image.png
proxy:
是遠(yuǎn)程倉(cāng)庫(kù)的代理。比如說(shuō)在nexus中配置了一個(gè)central repository的proxy,當(dāng)用戶向這個(gè)proxy請(qǐng)求一個(gè)artifact,這個(gè)proxy就會(huì)先在本地查找,如果找不到的話,就會(huì)從遠(yuǎn)程倉(cāng)庫(kù)下載,然后返回給用戶,相當(dāng)于起到一個(gè)中轉(zhuǎn)的作用
Hosted:
是宿主倉(cāng)庫(kù),用戶可以把自己的一些構(gòu)件,deploy到hosted中,也可以手工上傳構(gòu)件到hosted里。比如說(shuō)oracle的驅(qū)動(dòng)程序,ojdbc6.jar,在central repository是獲取不到的,就需要手工上傳到hosted里
Group:
是倉(cāng)庫(kù)組,在maven里沒(méi)有這個(gè)概念,是nexus特有的。目的是將上述多個(gè)倉(cāng)庫(kù)聚合,對(duì)用戶暴露統(tǒng)一的地址,這樣用戶就不需要在pom中配置多個(gè)地址。
maven-central:maven中央庫(kù),默認(rèn)從[https://repo1.maven.org/maven2/](https://repo1.maven.org/maven2/)拉取jar
maven-releases:私庫(kù)發(fā)行版jar
maven-snapshots:私庫(kù)快照(調(diào)試版本)jar
maven-public:倉(cāng)庫(kù)分組,把上面三個(gè)倉(cāng)庫(kù)組合在一起對(duì)外提供服務(wù),在本地maven基礎(chǔ)配置settings.xml中使用。
3、部署jar包到私服
在setting.xml添加對(duì)應(yīng)的用戶名密碼
<servers>
<server>
<id>nexus-snapshots</id>
<username>username</username>
<password>password</password>
</server>
</servers>
在pom文件中添加
<distributionManagement>
<snapshotRepository>
<!--此名稱要和settings.xml中設(shè)置的ID一致-->
<id>nexus-snapshots</id>
<name>nexus-snapshots-name</name>
<url>http://ip:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
4、從私服中引用自己部署上傳的jar包
在setting.xml文件中指定私服鏡像
<mirrors>
<mirror>
<!--該鏡像的唯一標(biāo)識(shí)符。id用來(lái)區(qū)分不同的mirror元素。 -->
<id>my-nexus</id>
<!--此處配置所有的構(gòu)建均從私有倉(cāng)庫(kù)中下載 *代表所有,也可以寫(xiě)central -->
<mirrorOf>*</mirrorOf>
<name>central repository</name>
<!--該鏡像的URL。構(gòu)建系統(tǒng)會(huì)優(yōu)先考慮使用該URL,而非使用默認(rèn)的服務(wù)器URL。 -->
<url>http://ip:8081/repository/maven-public/</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
配置倉(cāng)庫(kù)
<profiles>
<profile>
<id>nexus</id>
<!--遠(yuǎn)程倉(cāng)庫(kù)列表,它是Maven用來(lái)填充構(gòu)建系統(tǒng)本地倉(cāng)庫(kù)所使用的一組遠(yuǎn)程項(xiàng)目。 -->
<repositories>
<!--發(fā)布版本倉(cāng)庫(kù)-->
<repository>
<id>nexus</id>
<!--name隨便-->
<name>Nexus Release Snapshot Repository</name>
<!--地址是nexus中repository(Releases/Snapshots)中對(duì)應(yīng)的地址-->
<url>http://47.105.49.228:8081/repository/maven-releases/</url>
<!--true或者false表示該倉(cāng)庫(kù)是否為下載某種類型構(gòu)件(發(fā)布版,快照版)開(kāi)啟。 -->
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!--發(fā)現(xiàn)插件的遠(yuǎn)程倉(cāng)庫(kù)列表。倉(cāng)庫(kù)是兩種主要構(gòu)件的家。第一種構(gòu)件被用作其它構(gòu)件的依賴。這是中央倉(cāng)庫(kù)中存儲(chǔ)的大部分構(gòu)件類型。另外一種構(gòu)件類型是插件。-->
<!--各節(jié)點(diǎn)的含義和repository是一樣的-->
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Release Snapshot Repository</name>
<url>http://47.105.49.228:8081/repository/maven-snapshots/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<!--設(shè)置maven編譯器級(jí)別-->
<profile>
<id>jdk18</id>
<activation>
<!--profile默認(rèn)是否激活的標(biāo)識(shí) -->
<activeByDefault>true</activeByDefault>
<!--activation有一個(gè)內(nèi)建的java版本檢測(cè),如果檢測(cè)到j(luò)dk版本與期待的一樣,profile被激活。 -->
<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>
</profiles>
激活配置
<!--激活配置-->
<activeProfiles>
<!--profile下的id-->
<activeProfile>nexus</activeProfile>
</activeProfiles>