1. 程式人生 > 其它 >|NO.Z.00023|——————————|CloudNative|——|CI/CD&Maven私服Nexus3.V04|---------------------------------------------|Maven私服Nexus3倉庫介紹|

|NO.Z.00023|——————————|CloudNative|——|CI/CD&Maven私服Nexus3.V04|---------------------------------------------|Maven私服Nexus3倉庫介紹|



[CloudNative:CI/CD&Maven私服Nexus3.V04]                                                        [Applications.CloudNative] [|CI/CD入門|程式碼上線方案|持續整合/持續交付/持續部署|maven私服nexus3|nexus3上傳jar包|常見錯誤|]








一、Maven私服Nexus3倉庫介紹:Nexus3倉庫介紹
### --- 檢視Nexus3倉庫三種類型

~~~     ——>點選“設定-Repositories”,就可以看到倉庫,分三種類型:
二、Nexus3倉庫三種類型說明
### --- Nexus3倉庫三種類型說明

~~~     # proxy:
~~~     是遠端倉庫的代理。比如說在nexus中配置了一個central repository的proxy,
~~~     當用戶向這個proxy請求一個artifact,這個proxy就會先在本地查詢,
~~~     如果找不到的話,就會從遠端倉庫下載,然後返回給使用者,相當於起到一箇中轉的作用。    
~~~     # Hosted:
~~~     是宿主倉庫,使用者可以把自己的一些構件,deploy到hosted中,
~~~     也可以手工上傳構件到hosted裡。比如說oracle的驅動程式,ojdbc6.jar,
~~~     在central repository是獲取不到的,就需要手工上傳到hosted裡,
~~~     一般用來存放公司自己的jar包;
~~~     # Group:
~~~     是倉庫組,在maven裡沒有這個概念,是nexus特有的。
~~~     目的是將上述多個倉庫聚合,對使用者暴露統一的地址,這樣使用者就不需要在pom中配置多個地址,
~~~     只要統一配置group的地址就可以了右邊那個Repository Path可以點選進去,
~~~     看到倉庫中artifact列表。不過要注意瀏覽器快取,
~~~     當你的專案希望在多個repository使用資源時就不需要多次引用了,只需要引用一個group即可
~~~     # maven-public:
~~~     maven-central、maven-release和maven-snapshot三個庫的合集。
~~~     # maven-release:
~~~     用來存放release版本的jar包。
~~~     # maven-snapshot:
~~~     用來存放snapshot版本的jar包。
三、關於Maven的Snapshot版本與Release版本
### --- Snapshot版本代表不穩定、尚處於開發中的版本 

~~~     Release版本則代表穩定的版本 
~~~     什麼情況下該用SNAPSHOT? 協同開發時,如果A依賴構件B,
~~~     由於B會更新,B應該使用SNAPSHOT來標識自己。
~~~     # 這種做法的必要性可以反證如下: 
~~~     # 如果B不用SNAPSHOT,而是每次更新後都使用一個穩定的版本,那版本號就會升得太快,
~~~     每天一升e68a84e8a2ade79fa5e9819331333363396362甚至每個小時一升,這就是對版本號的濫用。 
~~~     如果B不用SNAPSHOT,  但一直使用一個單一的Release版本號,
~~~     那當B更新後,A可能並不會接受到更新。
~~~     # 因為A所使用的repository一般不會頻繁更新release版本的快取(即本地repository),
~~~     所以B以不換版本號的方式更新後,A在拿B時發現本地已有這個版本,
~~~     就不會去遠端Repository下載最新的B 
~~~     # 不用Release版本,在所有地方都用SNAPSHOT版本行不行? 不行。正式環境中不得使用snapshot版本的庫。  
~~~     比如說,今天你依賴某個snapshot版本的第三方庫成功構建了自己的應用,
~~~     明天再構建時可能就會失敗,因為今晚第三方可能已經更新了它的snapshot庫。
~~~     你再次構建時,Maven會去遠端repository下載snapshot的最新版本,
~~~     你構建時用的庫就是新的jar檔案了,這時正確性就很難保證了。








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)