nexus創建maven私服

目前版本已經更新到了3.X
下載地址:https://www.sonatype.com/download-oss-sonatyp點擊打開鏈接
下載文件名:nexus-3.16.1-02-win64.zip
下載完成后直接解壓到想要的目錄,解壓后會有兩個目錄:
sonatype-work(工作目錄)
nexus-3.16.1-02(安裝文件目錄)
執行命令安裝私服(使用管理員權限在dos下執行命令安裝私服)以便開機自啟不需要每次都啟動,雖然維護maven倉庫的私服應該是局域網中一臺一直開啟的機器,但還是說一下這里想把nexus做成win10服務的一個坑
nexus.exe /install //安裝
nexus.exe /uninstall//卸載
net start nexus //啟動
net stop nexus//停止

0.前提都是在bin目錄下執行命令的例如我的D:\java\application\nexus\nexus-3.16.1-02\bin
1.首先報這個錯是因為沒有管理員權限Could not open SCManager.
所以win+x 打開windows powershell管理員
2.然后執行nexus.exe /install報錯
nexus.exe : 無法將“nexus.exe”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括路徑,請確
保路徑正確,然后再試一次。
所在位置 行:1 字符: 1

  • nexus.exe /install
  •   + CategoryInfo          : ObjectNotFound: (nexus.exe:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
    
    

3.這是因為找不到命令 nexus.exe,但它確實存在于當前位置。默認情況下,Windows PowerShell 不會從當前位置加載 命令。如果信任此命令,請改為鍵入“.\nexus.exe”
所以執行.\nexus.exe /install
4.執行成功,啟動這個服務,稍等一會時間,在瀏覽器中訪問 http://localhost:8081/。就能夠得到這個頁面.如下圖所示:

image.png

image.png
image.png

私服是指私有服務器,是架設在局域網的一種特殊的遠程倉庫,目的是代理遠程倉庫及部署第三方構建。有了私服之后,當 Maven 需要下載構件時,直接請求私服,私服上存在則下載到本地倉庫;否則,私服請求外部的遠程倉庫,將構件下載到私服,再提供給本地倉庫下載。

image

為什么要構建Nexus私服?
如果沒有Nexus私服,我們所需的所有構件都需要通過maven的中央倉庫和第三方的Maven倉庫下載到本地,而一個團隊中的所有人都重復的從maven倉庫下載構件無疑加大了倉庫的負載和浪費了外網帶寬,如果網速慢的話,還會影響項目的進程。很多情況下項目的開發都是在內網進行的,連接不到maven倉庫怎么辦呢?開發的公共構件怎么讓其它項目使用?這個時候我們不得不為自己的團隊搭建屬于自己的maven私服,這樣既節省了網絡帶寬也會加速項目搭建的進程,當然前提條件就是你的私服中擁有項目所需的所有構件。

  1. 倉庫介紹
    1)Maven可直接從宿主倉庫下載構件,也可以從代理倉庫下載構件,而代理倉庫間接的從遠程倉庫下載并緩存構件
    2)為了方便,Maven可以從倉庫組下載構件,而倉庫組并沒有時間的內容(下圖中用虛線表示,它會轉向包含的宿主倉庫或者代理倉庫獲得實際構件的內容).

3.1 代理倉庫(Proxy Repository)
顧名思義是代理第三方倉庫的,如:

maven-central

nuget.org-proxy

版本策略(Version Policy):

Release: 正式版本

Snapshot: 快照版本

Mixed:混合模式

布局策略(Layout Policy):

Strict:嚴格

Permissive:寬松

3.2 宿主倉庫(Hosted Repository)
存儲本地上傳的組件和資源的,如:

maven-releases

maven-snapshots

nuget-hosted

部署策略(Deployment Policy):

Allow Redeploy:允許重新部署

Disable Redeploy:禁止重新部署

Read-Only:只讀

3.3 倉庫組(Repository Group)
通常包含了多個代理倉庫和宿主倉庫,在項目中只要引入倉庫組就可以下載到代理倉庫和宿主倉庫中的包,如:

maven-public

nuget-group

4登錄
右上角登錄,默認的用戶名是admin密碼是admin123

4.4 搜索(Search)

這個就是類似Maven倉庫上的搜索功能,就是從私服上查找是否有哪些包。

注意:

1) 在Search這級是支持模糊搜索的,如圖所示:

image

2)如果進入具體的目錄,好像不支持模糊搜索,如圖所示:

image

注意下面幾點說明:
1.component name的一些說明:
1)maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取jar
2)maven-releases:私庫發行版jar
3)maven-snapshots:私庫快照(調試版本)jar
4)maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地maven基礎配置settings.xml中使用。
2.Nexus默認的倉庫類型有以下四種:
1)group(倉庫組類型):又叫組倉庫,用于方便開發人員自己設定的倉庫;
2)hosted(宿主類型):內部項目的發布倉庫(內部開發人員,發布上去存放的倉庫);
3)proxy(代理類型):從遠程中央倉庫中尋找數據的倉庫(可以點擊對應的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠程倉庫的路徑);
4)virtual(虛擬類型):虛擬倉庫(這個基本用不到,重點關注上面三個倉庫的使用);
3.Policy(策略):表示該倉庫為發布(Release)版本倉庫還是快照(Snapshot)版本倉庫;
4.Public Repositories下的倉庫
1)3rd party: 無法從公共倉庫獲得的第三方發布版本的構件倉庫,即第三方依賴的倉庫,這個數據通常是由內部人員自行下載之后發布上去;
2)Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫
3)Central: 用來代理maven中央倉庫中發布版本構件的倉庫
4)Central M1 shadow: 用于提供中央倉庫中M1格式的發布版本的構件鏡像倉庫
5)Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫
6)Releases: 內部的模塊中release模塊的發布倉庫,用來部署管理內部的發布版本構件的宿主類型倉庫;release是發布版本;
7)Snapshots:發布內部的SNAPSHOT模塊的倉庫,用來部署管理內部的快照版本構件的宿主類型倉庫;snapshots是快照版本,也就是不穩定版本
所以自定義構建的倉庫組代理倉庫的順序為:Releases,Snapshots,3rd party,Central。也可以使用oschina放到Central前面,下載包會更快。
5.Nexus默認的端口是8081,可以在etc/nexus-default.properties配置中修改。
6.Nexus默認的用戶名密碼是admin/admin123
7.當遇到奇怪問題時,重啟nexus,重啟后web界面要1分鐘左右后才能訪問。
8.Nexus的工作目錄是sonatype-work(路徑一般在nexus同級目錄下)
[root@master-node local]# pwd
/usr/local
[root@master-node local]# ls nexus/
bin deploy etc lib LICENSE.txt NOTICE.txt public system
[root@master-node local]# ls sonatype-work/
nexus3
[root@master-node local]# ls sonatype-work/nexus3/
backup blobs cache db elasticsearch etc generated-bundles health-check instances keystores lock log orient port tmp

4.5 Browse

image

1)Assets

這是能看到所有的資源,包含Jar,已經對Jar的一些描述信息。

2)Components

這里只能看到Jar包。

4.6 BlobStores

文件存儲的地方,創建一個目錄的話,對應文件系統的一個目錄,如圖所示:

image

4.7 Repositories

image
  1. Proxy

這里就是代理的意思,代理中央Maven倉庫,當PC訪問中央庫的時候,先通過Proxy下載到Nexus倉庫,然后再從Nexus倉庫下載到PC本地。
這樣的優勢只要其中一個人從中央庫下來了,以后大家都是從Nexus私服上進行下來,私服一般部署在內網,這樣大大節約的寬帶。

創建Proxy的具體步驟
1--點擊“Create Repositories”按鈕

image

2--選擇要創建的類型

image

3--填寫詳細信息

Name:就是為代理起個名字

Remote Storage: 代理的地址,Maven的地址為: https://repo1.maven.org/maven2/

Blob Store: 選擇代理下載包的存放路徑

image
  1. Hosted
    Hosted是宿主機的意思,就是怎么把第三方的Jar放到私服上。
    Hosted有三種方式,Releases、SNAPSHOT、Mixed
    Releases: 一般是已經發布的Jar包
    Snapshot: 未發布的版本
    Mixed:混合的
    Hosted的創建和Proxy是一致的,具體步驟和上面基本一致。

值得注意的是:
Deployment Pollcy: 需要把策略改成“Allow redeploy”。

image
  1. 能把兩個倉庫合成一個倉庫來使用,目前沒使用過,所以沒做詳細的研究。

4.8 Security

這里主要是用戶、角色、權限的配置(上面已經提到了在這里添加用戶和角色等)

image

4.9 Support

包含日志及數據分析。

image

4.10 System
這主要是郵件服務器,調度設置的地方。

這部分主要講怎么和Maven做集成,集成的方式主要分以下種情況:代理中央倉庫、Snapshot包的管理、Release包的管理、第三方Jar上傳到Nexus上。

  1. 代理中央倉庫

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

<repositories>

  <repository>

   <id>maven-central</id>

   <name>maven-central</name>

  <url>http://192.168.23.38:8081/repository/maven-central/</url>

   <snapshots>

      <enabled>true</enabled>

   </snapshots>

   <releases>

     <enabled>true</enabled>

   </releases>

  </repository>

</repositories>

  1. Snapshot包的管理
  1. 修改Maven的settings.xml文件,加入認證機制。
<servers>

<server>

  <id>nexus</id>

  <username>admin</username>

  <password>admin123</password>

   </server>

</servers>

2.修改工程的Pom文件

<distributionManagement>

  <snapshotRepository>

    <id>nexus</id>

    <name>Nexus Snapshot</name>

 <url>http://192.168.23.38:8081/repository/maven-snapshots/</url>

   </snapshotRepository>

   <site>

     <id>nexus</id>

     <name>Nexus Sites</name>

<url>dav:http://192.168.23.38:8081/repository/maven-snapshots/</url>

    </site>

</distributionManagement>

注意事項:

image

上面修改的Pom文件如截圖中的名字要跟settings.xml文件中的名字一定要對應上。

  1. 上傳到Nexus上

1--項目編譯成的jar是Snapshot(POM文件的頭部)

groupId>com.woasis</groupId>

<artifactId>test-nexus</artifactId>

<version>1.0.0-SHAPSHOT</version>

<packaging>jar</packaging>

2--使用mvn deploy命令運行即可(運行結果在此略過)

3--因為Snapshot是快照版本,默認他每次會把Jar加一個時間戳,做為歷史備份版本。

  1. Release包的管理
  1. 與Snapshot大同小異,只是上傳到私服上的Jar包不會自動帶時間戳
    
  2. 與Snapshot配置不同的地方,就是工程的PMO文件,加入repository配置
    

<distributionManagement>

<repository>

<id>nexus</id>

<name>Nexus Snapshot</name>

<url>http://192.168.23.38:8081/repository/maven-releases/</url>

</repository>

   3. 打包的時候需要把Snapshot去掉
  1. 第三方Jar上傳到Nexus上

[root@master-node src]#mvn deploy:deploy-file -DgroupId=org.jasig.cas.client-DartifactId=cas-client-core -Dversion=3.1.3 -Dpackag
注意事項:
-DrepositoryId=nexus 對應的就是Maven中settings.xml的認證配的名字。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內容