1. 程式人生 > >Nexus3.x安裝及使用(Docker方式一鍵安裝)

Nexus3.x安裝及使用(Docker方式一鍵安裝)

文章目錄

Nexus介紹

Nexus 是Maven倉庫管理器,如果你使用Maven,你可以從Maven中央倉庫 下載所需要的構件(artifact),但這通常不是一個好的做法,你應該在本地架設一個Maven倉庫伺服器,在代理遠端倉庫的同時維護本地倉庫,以節省頻寬和時間,Nexus就可以滿足這樣的需要。此外,他還提供了強大的倉庫管理功能,構件搜尋功能,它基於REST,友好的UI是一個extjs的REST客戶端,它佔用較少的記憶體,基於簡單檔案系統而非資料庫。這些優點使其日趨成為最流行的Maven倉庫管理器。除此之外,Nexus還可以管理Docker映象


通常的做法:本地倉庫沒有,則去中央倉庫下載
在這裡插入圖片描述


搭建私庫的做法:本地倉庫沒有,再去私服下載,私服沒有,再去中央倉庫下載
在這裡插入圖片描述

docker安裝Nexus3.x

安裝docker

在我的另一篇文章有說明,直接使用yum安裝,非常簡單,請移步:
Docker第二篇-Linux和Windows下安裝Docker

安裝Nexus3

準備好一臺虛擬機器,執行以下命令:

#建立宿主機掛載目錄並設定許可權
mkdir -p /usr/local/nexus3/nexus-data
chown -R 200 /usr/local/nexus3/nexus-data

docker run -tid \
--net host \
-p 8081:8081 \
--name nexus \
-e NEXUS_CONTEXT=
nexus \ -v /usr/local/nexus3/nexus-data:/nexus-data sonatype/nexus3

net host表示使用主機的網路訪問外網
8081:8081表示宿主機埠和容器埠對映
NEXUS_CONTEXT=nexus表示在訪問Nexus後臺web時,需要帶上nexus進行訪問,如http://ip:8081/nexus
本地若不存在sonatype/nexus3映象,則會去下載,下載完畢後直接啟動

安裝完畢!

登入驗證

訪問web地址:http://ip:8081/nexus
輸入預設賬號密碼:admin/admin123
在這裡插入圖片描述

web介面使用

  1. Browse可以檢視當前有多少倉庫,搭建好的Nexus,預設會帶有一些maven倉庫,一般使用這些倉庫就足夠了
  2. 預設倉庫說明

    maven-central:maven中央庫,預設從https://repo1.maven.org/maven2/拉取jar
    maven-releases:私庫發行版jar,初次安裝請將Deployment policy設定為Allow redeploy
    maven-snapshots:私庫快照(除錯版本)jar
    maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地maven基礎配置settings.xml或專案pom.xml中使用

  3. 倉庫型別

    Group:這是一個倉庫聚合的概念,使用者倉庫地址選擇Group的地址,即可訪問Group中配置的,用於方便開發人員自己設定的倉庫。maven-public就是一個Group型別的倉庫,內部設定了多個倉庫,訪問順序取決於配置順序,3.x預設Releases,Snapshots,Central,當然你也可以自己設定。
    Hosted:私有倉庫,內部專案的釋出倉庫,專門用來儲存我們自己生成的jar檔案
    3rd party:未釋出到公網的第三方jar (3.x去除了)
    Snapshots:本地專案的快照倉庫
    Releases: 本地專案釋出的正式版本
    Proxy:代理型別,從遠端中央倉庫中尋找資料的倉庫(可以點選對應的倉庫的Configuration頁簽下Remote Storage屬性的值即被代理的遠端倉庫的路徑),如可配置阿里雲maven倉庫
    Central:中央倉庫
    Apache Snapshots:Apache專用快照倉庫(3.x去除了)

  4. 要想設定各個倉庫的引數,參考如下
    在這裡插入圖片描述
    在這裡插入圖片描述

配置阿里雲公共倉庫

Nexus的maven-group的預設查詢方式為:maven-releases --> maven-snapshots --> maven-central,我們在中間再加一個阿里雲倉庫,加快訪問速度。
在這裡插入圖片描述
選擇proxy型別
在這裡插入圖片描述
資訊填寫如下

倉庫名字:隨便填寫
阿里雲遠端maven倉庫地址:http://maven.aliyun.com/nexus/content/groups/public/
其他選項:預設即可

在這裡插入圖片描述
修改maven-public中的倉庫引用及順序:
在這裡插入圖片描述
至此,配置完畢!我們在maven使用maven-public倉庫地址的時候,會按照如下順序訪問:本地倉庫 --> 私服maven-releases --> 私服maven-snapshots --> 遠端阿里雲maven倉庫 --> 遠端中央倉庫。
接下來說明maven如何配置使用私服。

Maven配置使用Nexus

Maven配置私服下載依賴

maven配置私服下載有兩種方式

  • setting.xml:該檔案配置的是全域性模式
  • pom.xml:該檔案的配置的是專案獨享模式
  • 若pom.xml和setting.xml同時配置了,以pom.xml為準

setting.xml檔案配置

這個時候不需要再配置pom.xml檔案,即可使用私服下載jar依賴包

<mirrors>
	 <mirror>
		<!--該映象的唯一識別符號。id用來區分不同的mirror元素。 -->
        <id>maven-public</id>
		<!--映象名稱 -->
        <name>maven-public</name>
		<!--*指的是訪問任何倉庫都使用我們的私服-->
		<mirrorOf>*</mirrorOf>
		<!--該映象的URL。構建系統會優先考慮使用該URL,而非使用預設的伺服器URL。 -->
        <url>http://174.12.8.50:8081/nexus/repository/maven-public/</url>		
    </mirror>
  </mirrors>

去工程下載依賴包,發現使用我們自己的私服了
在這裡插入圖片描述
登入Nexus,發現已經有很多jar包了
在這裡插入圖片描述
當然,很有可能你並沒有搭建私服,屬於個人開發,那麼也可以直接配置使用阿里雲maven倉庫

<mirrors>
	<mirror>
		<!--該映象的唯一識別符號。id用來區分不同的mirror元素。 -->
        <id>nexus-aliyun</id>
		<!--映象名稱 -->
        <name>nexus-aliyun</name>
		<!--該映象的URL。構建系統會優先考慮使用該URL,而非使用預設的伺服器URL。 -->
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		<!--被映象的伺服器的id。例如,如果我們要設定了一個Maven中央倉庫(http://repo1.maven.org/maven2)的映象,就需要將該元素設定成central。這必須和中央倉庫的id central完全一致。-->
		<mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

pom.xml檔案配置

如果你配置了pom.xml,則以pom.xml為準

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

如果沒有私服,也可以配置阿里雲maven倉庫

<repositories>
   <repository>
      <id>maven-aliyun</id>
      <url>http://maven.aliyun.com/nexus/content/groups/public//</url>
      <releases>
         <enabled>true</enabled>
      </releases>
      <snapshots>
         <enabled>true</enabled>
         <updatePolicy>always</updatePolicy>
         <checksumPolicy>fail</checksumPolicy>
      </snapshots>
   </repository>
</repositories>

Maven配置私服下載外掛

這裡直接說pom.xml的配置,如下:

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

Maven配置私服釋出依賴

第一步,修改setting.xml檔案,指定releases和snapshots server的使用者名稱和密碼

<servers>
	<server>
		<id>releases</id>
		<username>admin</username>
		<password>admin123</password>
	</server>
	<server>
		<id>snapshots</id>
		<username>admin</username>
		<password>admin123</password>
	</server>
</servers>

第二步,在專案的pom.xml檔案中加入distributionManagement節點
注意:repository裡的id需要和第一步裡的server id名稱保持一致

<distributionManagement>
	<repository>
		<id>releases</id>
		<name>Releases</name>
		<url>http://174.12.8.50:8081/nexus/repository/maven-releases/</url>
	</repository>
	<snapshotRepository>
		<id>snapshots</id>
		<name>Snapshot</name>
		<url>http://174.12.8.50:8081/nexus/repository/maven-snapshots/</url>
	</snapshotRepository>
</distributionManagement>

第三步,執行釋出

mvn deploy

登入Nexus,檢視對應的倉庫已經有相關的依賴包了
在這裡插入圖片描述
注意以下幾點:

  • 若專案版本號末尾帶有 -SNAPSHOT,則會發布到snapshots快照版本倉庫
  • 若專案版本號末尾帶有 -RELEASES 或什麼都不帶,則會發布到releases正式版本倉庫

上傳第三方jar

在這裡插入圖片描述