Maven實戰之nexus

使用專門的Maven倉庫管理軟件Nexus構建Maven私服。

nexus下載地址

https://www.sonatype.com/download-oss-sonatype

啟動nexus服務

管理員身份運行cmd,切換到目錄D:\nexus-3.15.1-01-win64\nexus-3.15.1-01\bin(以我自己的存放目錄舉例子)

1.???方式一,nexus.exe /run 命令可以啟動nexus服務;

2.???方式二,以本地服務來安裝啟動nexus;

D:\nexus-3.15.1-01-win64\nexus-3.15.1-01\bin>nexus.exe /install //安裝nexus服務 Installedservice 'nexus'

D:\nexus-3.15.1-01-win64\nexus-3.15.1-01\bin>nexus.exe /uninstall //卸載nexus服務 Servicesis already stoped Uninstalledservice 'nexus' D:\nexus-3.15.1-01-win64\nexus-3.15.1-01\bin>net start nexus //啟動nexus服務 nexus 服務已經啟動成功 D:\nexus-3.15.1-01-win64\nexus-3.15.1-01\bin\bin>net stop nexus //關閉nexus服務 nexus 服務正在停止.. nexus 服務已經成功停止

服務啟動之后打開瀏覽器,輸入http://127.0.0.1:8081/ 端口沒被使用過的情況下,直接輸入ip+8081端口,就可以打開nexus主頁

修改默認端口

D:\nexus-3.15.1-01-win64\nexus-3.15.1-01\etc\nexus-default.properties 編輯可以修改端口

application-host : Nexus服務監聽的主機 application-port: Nexus服務監聽的端口, nexus-context-path : Nexus服務的上下文路徑 通常可以不做任何修改,主機可以改為application-host 為127.0.0.1(關于0.0.0.0與127.0.0.1的區別自行檢索)

主頁如下

登錄之后就可以查看私服了。登錄以后,最上面會有兩個按鈕,一個是查看倉庫配置的(齒輪形狀),另一個是查看倉庫內容的(正方體), 通過點擊左側的browse來瀏覽倉庫

點擊倉庫配置按鈕進入倉庫管理

Type倉庫類型

group(倉庫組類型):又叫組倉庫,用于方便開發人員自己設定的倉庫;

hosted(宿主類型):內部項目的發布倉庫(內部開發人員,發布上去存放的倉庫);

proxy(代理類型):從遠程中央倉庫中尋找數據的倉庫(可以點擊對應的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠程倉庫的路徑);

virtual(虛擬類型):虛擬倉庫(這個基本用不到,重點關注上面三個倉庫的使用);

Format倉庫格式

maven2

nuget(.net倉庫)

Name

maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取jar

maven-releases:私庫發行版jar

maven-snapshots:私庫快照jar

maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地maven基礎配置settings.xml中使用。

Maven使用倉庫的圖解

從圖中可以看出,Maven可以從宿主倉庫下載構件,也可以從代理倉庫間接下載緩存構件,倉庫組是一個虛擬倉庫,最后實際會從組成倉庫組的宿主倉庫或者代理倉庫下載構件。

創建宿主倉庫

點擊創建倉庫按鈕,選擇倉庫格式Maven2(hosted)

項目中Maven集成nexus

只要在PMO文件中配置私服的地址(比如http://192.168.1.161:8081)即可,配置如下:

<repositories>

? ? <repository>

? ? ? ? <id>maven-central</id>

? ? ? ? <name>maven-central</name>

? ? ? ? <url>http://192.168.1.161:8081/repository/maven-central/</url>

? ? ? ? <snapshots>

? ? ? ? ? ? <enabled>true</enabled>

? ? ? ? </snapshots>

? ? ? ? <releases>

? ? ? ? ? ? <enabled>true</enabled>

? ? ? ? </releases>

? ? </repository>

</repositories>

項目中打包項目上nexus對應的倉庫

在項目pom文件中配置

<!--定義snapshots庫和releases庫的nexus地址-->?

<distributionManagement>?

? ? <repository>?

? ? ? ? <id>nexus-releases</id>?

? ? ? ? <url>?

? ? ? ? ? ? http://172.17.103.59:8081/nexus/content/repositories/releases/?

? ? ? ? </url>?

? ? </repository>?

? ? <snapshotRepository>?

? ? ? ? <id>nexus-snapshots</id>?

? ? ? ? <url>?

? ? ? ? ? ? http://172.17.103.59:8081/nexus/content/repositories/snapshots/?

? ? ? ? </url>?

? ? </snapshotRepository>?

</distributionManagement>?

如果發布時使用mvn deploy命令,版本號類似0.1-SNAPSHOT,此時maven會認為是快照版本,會自動發布到快照版本庫 relases的會發布到relases倉庫。 在distributionManagement段中配置的是snapshot快照庫和release發布庫的地址,這里是采用nexus作為鏡像服務器。對于版本庫主要是id和url的配置,配置完成后就可以通過mvn deploy進行發布了,當然了,如果你的鏡像服務器需要用戶名和密碼,那么還需要在maven的settings.xml文件中做如下配置:

<server>?

? <id>nexus-releases</id>?

? <username>admin</username>?

? <password>admin123</password>?

</server>?

<server>?

? <id>nexus-snapshots</id>?

? <username>admin</username>?

? <password>admin123</password>?

</server>

注意這里配置的server的id必須和pom文件中的distributionManagement對應倉庫的id保持一致,maven在處理發布時會根據id查找用戶名稱和密碼進行登錄和文件的上傳發布。

此外nexus提供了全面的權限控制,能讓用戶自由地配置nexus用戶,角色,權限

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 首先私服是一種衍生出來的特殊的Maven遠程倉庫,構建私服的好處請看3.5私服 可以幫助大家建立私服的倉庫管理軟件...
    zlcook閱讀 10,615評論 0 32
  • Nexus是Maven倉庫管理器,管理開發所需要的構件。如果你每次都是從Apache提供的Maven中央倉庫去下載...
    點融黑幫閱讀 3,838評論 0 6
  • 搭建 nexus 私服(centos6.7) 備注:Centos 6.7 、 nexus-2.12.1-01-bu...
    逐暗者閱讀 2,524評論 3 9
  • 遠程倉庫的配置在平時的開發中,我們往往不會使用默認的中央倉庫,默認的中央倉庫訪問的速度比較慢,訪問的人或許很多,有...
    kevin0016閱讀 330評論 0 0
  • |-1-更新內容[6.從倉庫解析依賴的機制(重要)] 1Maven倉庫作用 倉庫用來存儲所有項目使用到構件,在ma...
    zlcook閱讀 6,130評論 0 25