亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是Maven 私服

發布時間:2021-10-20 16:35:14 來源:億速云 閱讀:207 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關什么是Maven 私服,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

前言

在 Java EE 開發中,我們使用 Maven 構建工具主要來管理項目的第三方庫的依賴,以及公司內部其他項目服務的依賴。因此 Maven 私服就是必不可少的一環。

什么是 Maven 私服

在介紹 Maven 私服之前,我們首先清楚下什么是 Maven 倉庫。

Maven 倉庫:Maven 統一存儲所有Maven項目依賴,插件,以及所上傳項目的地方。

并且 Maven 倉庫還分成兩類:本地倉庫和遠程倉庫。

  • 本地倉庫,就是我們本地電腦安裝Maven后,在 配置文件 setting.xml 里 localRepository 所需要指定目錄的那個文件夾。

  • 遠程倉庫,就是在外部網絡里(包括局域網)指定 URL 的專門存放 Java 庫,Maven插件等的服務器,,例如中央倉庫,就是一個典型的遠程倉庫,它包含了世界上絕大多數開源的 Java 庫,類似的還有許多其他的公開庫

而本文提到的私服,就是另一種特殊的遠程倉庫,它通常架設在局域網內的一臺服務器上,用于代理所有外部的遠程倉庫,并且能接受內部項目的上傳和獲取。

什么是Maven 私服

而這些倉庫又有是什么用呢?當 Maven 項目需要依賴一些其他項目的 Java 庫時,Maven 首先會在本地倉庫查找,如果存在對應的庫,就直接使用;如果本地倉庫不存在,Maven 就會去遠程倉庫查找,找到對應的 Java 庫后下載到本地倉庫再使用,以便于下次需要該Java庫時,直接使用緩存在本地倉庫的依賴庫即可,省去了重復通過網絡查找并下載的時間,對于 Maven 插件也是同樣的過程。

通常情況下,中央倉庫是Maven 默認的遠程倉庫,而當引入了私服后,本地倉庫查找結束未找到所需要的依賴庫時,就先從私服倉庫開始查找,仍未找到的話,最后再去中央倉庫查找,具體過程可以參考下圖:

什么是Maven 私服

在這里我們再看下私服的作用有哪些:

  • 內網訪問,節省外網帶寬。

  • 一次外網下載,內網所有用戶就可以只下載私服緩存,加速 Maven 項目構建。

  • 允許上傳和下載私有庫,并且不被外部訪問,更加安全。

  • 減少外部網絡因素,提供項目構建的穩定性。

  • 方便內部項目服務的依賴引用,而不需要其他項目的完整源代碼。

這里對最后一小點的作用添加下具體描述:當我們有獨立的兩個Maven 項目,比如訂單服務項目和會員服務項目,其中訂單服務項目需要會員服務,依賴會員服務的 API 包,通過私服可以將編譯后的會員服務的 API 包上傳,然后訂單服務程序直接下載引用私服上的會員服務 API 包即可,這樣就不需要導入會員服務項目代碼,也不用關心會員服務具體實現了,起到了內部服務項目輕度引用的作用,描述可參見下圖。

什么是Maven 私服

搭建 Maven 私服

了解 Maven 私服之后,我們進一步學習。我們首先來搭建一個 Maven 私服。在這里我們使用最流行的開源 Maven 倉庫管理軟件 - Nexus,來快速搭建 Maven 私服,傳統的搭建方式為在 Nexus 官網上下載開源版的 Nexus OSS 進行安裝:https://www.sonatype.com/nexus-repository-oss。而本文將采用 Docker 方式安裝 Nexus,不僅快速簡單,而占用更少的機器資源。

如果對 Docker 不熟悉的同學,可以參見 10分鐘快速掌握Docker必備基礎知識 學習了解下,簡單使用 Docker 也是十分容易的。

下載 Nexus 鏡像

在終端控制臺上使用 Docker 指令下載 Nexus 官方提供的Docker 鏡像:什么是Maven 私服

看到下圖結果時,就表示鏡像下載完成,可以通過 docker images 查看。

什么是Maven 私服

啟動 Nexus 容器

使用下方指令啟動 Nexus 容器:什么是Maven 私服

在這里對輸入的 Docker 指令的參數進行簡單的說明:

  • -d 表示讓容器后臺運行。

  • -p 8081:8081 表示了容器啟動時開放內部端口 8081(后者的8081) 映射主機端口的 8081 ,即通過 localhost:8081 可以訪問到 Nexus 容器所提供的服務。

  • -v /Users/One/Desktop/Nexus/nexus-data:/nexus-data 表示將容器內部 /var/nexus-data 掛載到當前主機的指定目錄,需要注意的是,-v 指定的外部路徑必須為全路徑。

  • --restart=always 比較簡單,表示當 docker 服務啟動時,該容器也跟著啟動。

執行上述指令后,稍等片刻,訪問 http://localhost:8081/ ,看到對應的 Nexus 后臺就表示私服安裝完成了,是不是很簡單呢。 什么是Maven 私服

容器啟動過程中,由于機器配置的不同,可能會出現啟動慢的情況,只需耐心等待即可。

啟動完成后,我們可以在所掛載的本機目錄下查看 Nexus 容器運行產生的文件。

什么是Maven 私服

配置 Maven 私服

私服安裝之后,我們首先進行登錄操作,點擊頁面左上角的 Sign In 按鈕,就會出現和下圖一樣的提示:

什么是Maven 私服

說明了 Nexus 默認登錄賬號為 admin,并且密碼位于文件 /nexus-data/admin.password 下,我們只需在本地配置的掛載目錄下查看該文件即可。

什么是Maven 私服

輸入默認的賬號密碼之后成功登錄之后,Nexus 就會強制要求修改 admin 的密碼,并且設置基本訪問權限,完成之后就正式進入了 Nexus 私服后臺。

什么是Maven 私服

這里簡單對界面元素進行介紹:

  1. 默認的瀏覽界面,可以搜索查看倉庫的組件,以及進行上傳操作。

  2. 用于管理私服程序的配置。

  3. 賬戶信息查看,允許修改密碼。

進入私服程序的配置界面,我們需要對默認配置進行幾點調整。

中央倉庫的代理路徑設置

將私服配置里中央倉庫的代理倉庫路徑更新為阿里云倉庫提供的代理地址:https://maven.aliyun.com/repository/central 這樣一來可以更快速地訪問在中央倉庫上所需要的依賴和插件。

什么是Maven 私服

新建自定義的倉庫

點擊Create repository,然后選擇類型為 maven2(hosted)

什么是Maven 私服

然后輸入倉庫名稱 private-release,并在 Version policy 一欄中選擇 Release,表示這個倉庫的存儲依賴為正式發布的組件,然后在 Deployment policy 一欄中選擇 Allow redeploy,允許部署和更新私服上的組件。

什么是Maven 私服

最后點擊藍色按鈕-Create repository 之后,就可以在倉庫列表看到自定義的倉庫了,有了 release 倉庫,我們再按照同樣方式操作添加一個 snapshot 倉庫,只需在 Version policy 一欄調整為 Snapshot 即可。

什么是Maven 私服

添加角色

Nexus 默認只有兩種角色:nx-anonymousnx-admin,前者只有瀏覽的權限,后者為管理員權限,一般情況下,我們還需要正對開發人員創建個角色。點擊 Create Role,添加一個 Role ID 為 developer 的自定義角色, 并且只添加自定義倉庫的使用權限,刪除操作除外。

什么是Maven 私服

保存之后,新增的角色就展示在列表中,有了角色,就可以關聯用戶,進行權限分配了。

什么是Maven 私服

添加用戶

跟權限類似,默認的用戶只有兩種:adminanonymous,我們同樣需要創建屬于開發者的用戶對象。點擊 Create local user,填入用戶名,密碼等必填信息之后,關聯我們先前的創建的角色,并保存即可。

什么是Maven 私服

用戶創建完成之后,我們就可以用新的用戶登錄私服,查看對應權限的內容了,例如我們用新建的用戶登錄,所能操作的只有查看和搜索自定義的私服倉庫。

什么是Maven 私服

這樣一來我們就創建好了自己的私服倉庫,配置完成之后,開發者就可以在 Maven 項目開發中使用了。

使用 Maven 私服

有了私服和用于開發的賬號,我們就需要在本地 Maven 配置文件 setting.xml 進行關聯。

設置 server 賬戶信息:什么是Maven 私服

設置私服倉庫地址:(這里的地址,可以通過 Nexus 后臺上倉庫頁面的 cpoy 按鈕自動復制得到)什么是Maven 私服

Maven 項目部署到私服

配置完成后,我們可以創建一個Maven工程,嘗試下打包到 Maven 私服。利用 IDE 快速生成 Maven 項目,在 POM 文件添加 distributionManagement 節點,并且指定對應的私服倉庫 id 和地址,如下:什么是Maven 私服

最后只要執行部署命令 mvn clean deploy 或者利用 IDE 的 部署插件即可,當控制臺出現 BUILD SUCCESS ,如下圖類似時則說明部署完成。

什么是Maven 私服

從日志上可以看出,我們的項目上傳都了 private- snapshot 倉庫下,此時我們可以在私服網站上的 private- snapshot 倉庫查看到上傳的 jar。

什么是Maven 私服

如果部署過程中出現如下提示:帶有 Access denied to 則說明在 setting.xml 配置的用戶權限不足,無法將 jar 部署到對應私服倉庫上去。

什么是Maven 私服

需要注意的是,對于一個Maven項目而言,如果項目的版本號中有 “SNAPSHOT” 字樣,則表示當前處于開發版本,Maven 會將發布到 snapshotRepository 節點對應地址上去。否則,Maven則認為這是一個發布版本,將程序發布到 repository 節點對應的地址上。由于示例項目的版本為 1.0.0-SNAPSHOT ,所以最終項目上傳到了 private-snapshot 這個 Snapshot 類型的倉庫下。

接下來如果其他項目要依賴這個 jar 時,只需要在其 POM 文件引入對應的坐標即可。

什么是Maven 私服

將第三方 jar 包部署到 Maven 私服

這里說到了第三方 jar 包,不是平常所提到的開源庫,更多的是來自其他第三方系統的 jar 包,由于項目需要,使用項目導入的方式來很不方便,更好的處理方式就是將第三方系統的 jar 包手動上傳到 Maven 私服上,需要使用的項目直接從私服倉庫中拉取即可。

這種方式實現起來也比較方便,分為兩種:可視化界面操作和命令行操作。

可視化界面操作:就是在 Nexus 后臺上進去,執行上傳操作必須要對于的上傳權限才可以,一般都是管理員賬號進行操作,選擇倉庫后進去上傳頁面,指定本地需要上傳的項目,自定義完坐標信息保存即可。

什么是Maven 私服

命令行方式:直接在終端輸入下面指令即可:什么是Maven 私服

  • -DgroupId 和 -DartifactId 構成了該jar包在 pom.xml 的坐標, 即對應依賴的 groupIdartifactId

  • -Dfile 表示需要上傳的jar包的絕對路徑

  • -Durl 為私服倉庫的url精確地址

  • -DrepositoryId 為私服倉庫定義的id

  • -Dversion 指定了版本號

  • -Dpackaging 指定了打包方式

當控制臺日志出現 BUILD SUCCESS 信息時則表示打包成功,如果出現打包失敗,很有可能是 Maven 配置文件里 server 元素下的用戶權限不足導致,需要 Nexus 后臺對用戶角色進行上傳權限的分配。

在 Java 企業級項目開發中,建立并維護私服是使用 Maven 必不可少的一步,本文從 Maven 的簡單介紹,到快速搭建和使用來進一步掌握 Maven 私服,為后續的企業微服務架構做好鋪墊。

上述就是小編為大家分享的什么是Maven 私服了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德兴市| 茌平县| 遂昌县| 中宁县| 通榆县| 大化| 吴堡县| 额济纳旗| 五台县| 中宁县| 陆河县| 桦南县| 达日县| 微山县| 赣州市| 托克托县| 洛隆县| 永嘉县| 大邑县| 土默特左旗| 玛曲县| 怀集县| 吉隆县| 都安| 白银市| 嘉定区| 明溪县| 浮梁县| 临沂市| 东阳市| 朔州市| 道真| 镇康县| 永川市| 宿松县| 泽普县| 保定市| 称多县| 阆中市| 华安县| 辛集市|