欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven入門之使用Nexus搭建Maven私服及上傳下載jar包

 更新時間:2018年12月18日 09:59:40   作者:鄒陽  
這篇文章主要介紹了Maven入門之使用Nexus搭建Maven私服及上傳下載jar包,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一. 私服搭建及配置

1 . 私服簡介

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

 

我們可以使用專門的 Maven 倉庫管理軟件來搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。這里我們使用 Sonatype Nexus。

2 . 安裝Nexus

2 . 1 . 下載Nexus

Nexus 專業(yè)版是需要付費的,這里我們下載開源版 Nexus OSS。下載地址:http://www.sonatype.org/nexus/go,最新的為OSS3.X,我這里選擇穩(wěn)定版本2.x,點擊后自動下載

2 . 2 . 使用bundle安裝包安裝Nexus

解壓安裝包nexus-2.14.5-02.zip,打開命令提示符,進入nexus-2.14.5-02/bin目錄 (為方便啟動和退出Nexus,可將bin目錄添加到環(huán)境變量),

1.執(zhí)行nexus命令

2.執(zhí)行 nexus install 將Nexus安裝為Windows服務

3.打開瀏覽器,訪問:http://localhost:8081/nexus/:

點擊右上角 Log In,使用用戶名:admin ,密碼:admin123 登錄,可使用更多功能:

4 . Nexus預置的倉庫

4.1 類型介紹

登陸Nexus,在左邊菜單欄里選擇Repositories,然后會出現(xiàn)右邊的畫面,右邊上半部分是列出來的repository,黑體字是類型為group的repository。

這里簡單介紹下幾種repository的類型:

Ø hosted,本地倉庫,通常我們會部署自己的構(gòu)件到這一類型的倉庫。比如公司的第二方庫。

Ø proxy,代理倉庫,它們被用來代理遠程的公共倉庫,如maven中央倉庫。

Ø group,倉庫組,用來合并多個hosted/proxy倉庫,當你的項目希望在多個repository使用資源時就不需要多次引用了,只需要引用一個group即可。

4.2 管理本地倉庫

我們前面講到類型為hosted的為本地倉庫,Nexus預置了3個本地倉庫,分別是Releases, Snapshots, 3rd Party. 分別講一下這三個預置的倉庫都是做什么用的:

Releases:

這里存放我們自己項目中發(fā)布的構(gòu)建, 通常是Release版本的, 比如我們自己做了一個FTP Server的項目, 生成的構(gòu)件為ftpserver.war, 我們就可以把這個構(gòu)建發(fā)布到Nexus的Releases本地倉庫. 關于符合發(fā)布后面會有介紹.

Snapshots:

這個倉庫非常的有用, 它的目的是讓我們可以發(fā)布那些非release版本, 非穩(wěn)定版本, 比如我們在trunk下開發(fā)一個項目,在正式release之前你可能需要臨時發(fā)布一個版本給你的同伴使用, 因為你的同伴正在依賴你的模塊開發(fā), 那么這個時候我們就可以發(fā)布Snapshot版本到這個倉庫, 你的同伴就可以通過簡單的命令來獲取和使用這個臨時版本.

3rd Party:

顧名思義, 第三方庫, 你可能會問不是有中央倉庫來管理第三方庫嘛,沒錯, 這里的是指可以讓你添加自己的第三方庫, 比如有些構(gòu)件在中央倉庫是不存在的. 比如你在中央倉庫找不到Oracle 的JDBC驅(qū)動, 這個時候我們就需要自己添加到3rdparty倉庫。

4.3 在Nexus為自己的項目手動單獨建庫

1. 建庫,Add-- >HostedRepository

按照下圖填寫信息,注意圈的地方,填寫完成后save

2. 然后選擇PublicRepositories,打開configuration選項卡

3. 將自己創(chuàng)建的倉庫添加到group,如圖從右側(cè)移到左側(cè),點擊save,保存。至此,已經(jīng)成功搭建好我們自定義的倉庫了。

注:如果需要你還可以創(chuàng)建一個倉庫組,在Repositories菜單處選add-->Repository Group即可

5. 在Nexus創(chuàng)建賬戶


最后點擊保存。當然自己也可以創(chuàng)建角色,分配權(quán)限等,這里直接用已有的角色,省略了一些步驟。

二. 利用搭建的私服,進行上傳和下載jar包

1. 遠程倉庫的認證

大部分公共的遠程倉庫無須認證就可以直接訪問,但我們在平時的開發(fā)中往往會架設自己的Maven遠程倉庫,出于安全方面的考慮,我們需要提供認證信息才能訪問這樣的遠程倉庫。配置認證信息和配置遠程倉庫不同,遠程倉庫可以配置在settings.xml文件中,也可直接在pom.xml中配置,后面會分別舉例說明,但是認證信息必須配置在settings.xml文件中。在settings.xml中配置認證信息更為安全。如下:在settings.xml中配置<servers>節(jié)點,用的賬號為上面我們創(chuàng)建的賬戶。

<settings>
  ...
  <!--配置遠程倉庫認證信息-->
  <servers>
   <server>
    <id>bbsnexus</id>
    <username>licui</username>
    <password>a111111</password>
   </server>
  </servers>
  ...
 </settings>

上面代碼我們配置了一個id為bbsnexus的遠程倉庫認證信息。Maven使用settings.xml文件中的servers元素及其子元素server配置倉庫認證信息。認證用戶名為licui,認證密碼為a111111。這里的關鍵是id元素,id沒有要求,隨便定義,但是后面配置遠程倉庫的id必須和這里的id保持一致。正是這個id將認證信息與倉庫配置聯(lián)系在了一起。

2. 配置遠程倉庫

如果只有一個項目,可以配置在項目的pom文件中:

  

如果有多個項目時,可以將如上配置放到Maven的Settings文件中:

repository:在repositories元素下,可以使用repository子元素聲明一個或者多個遠程倉庫。

id:倉庫聲明的唯一id,尤其需要注意的是,Maven自帶的中央倉庫使用的id為central,如果其他倉庫聲明也使用該id,就會覆蓋中央倉庫的配置。

name:倉庫的名稱,讓我們直觀方便的知道倉庫是哪個,暫時沒發(fā)現(xiàn)其他太大的含義。

url:指向了倉庫的地址,一般來說,該地址都基于http協(xié)議,Maven用戶都可以在瀏覽器中打開倉庫地址瀏覽構(gòu)件。

releases和snapshots:用來控制Maven對于發(fā)布版構(gòu)件和快照版構(gòu)件的下載權(quán)限。需要注意的是enabled子元素,該例中releases的enabled值為true,表示開啟JBoss倉庫的發(fā)布版本下載支持,而snapshots的enabled值為false,表示關閉JBoss倉庫的快照版本的下載支持。根據(jù)該配置,Maven只會從JBoss倉庫下載發(fā)布版的構(gòu)件,而不會下載快照版的構(gòu)件。

layout:元素值default表示倉庫的布局是Maven2及Maven3的默認布局,而不是Maven1的布局。基本不會用到Maven1的布局。

其他:對于releases和snapshots來說,除了enabled,它們還包含另外兩個子元素updatePolicy和checksumPolicy。

元素updatePolicy用來配置Maven從遠處倉庫檢查更新的頻率,默認值是daily,表示Maven每天檢查一次。其他可用的值包括:never-從不檢查更新;always-每次構(gòu)建都檢查更新;interval:X-每隔X分鐘檢查一次更新(X為任意整數(shù))。

元素checksumPolicy用來配置Maven檢查校驗和文件的策略。當構(gòu)建被部署到Maven倉庫中時,會同時部署對應的檢驗和文件。在下載構(gòu)件的時候,Maven會驗證校驗和文件,如果校驗和驗證失敗,當checksumPolicy的值為默認的warn時,Maven會在執(zhí)行構(gòu)建時輸出警告信息,其他可用的值包括:fail-Maven遇到校驗和錯誤就讓構(gòu)建失??;ignore-使Maven完全忽略校驗和錯誤。

3.配置倉庫鏡像

默認的,如果本地倉庫找不到依賴的構(gòu)件,這時需要東西時先到Nexus上找,如果發(fā)現(xiàn)Nexus服務關閉后,會自動到中央倉庫找。

如果我們想覆蓋中央倉庫的默認地址,強制依賴的東西都到Nexus中去找,即使Nexus關閉也不會到中央工廠去下載:

修改Maven的Settings文件:

至此,我們已經(jīng)可以從自己搭建的私服下載jar了。

4.上傳jar包到遠程倉庫

1)將已有的項目打成jar包上傳到私服服務器

首先需要在pom.xml中配置上傳倉庫的地址,配置distributionManagement元素,倉庫地址指向前面自定義的倉庫bbsid

<distributionManagement>
  <repository>
   <id>bbsnexus</id>
   <name>bbsidrepository</name>
   <url>http://127.0.0.1:8081/nexus/content/repositories/bbsid</url>
  </repository>
</distributionManagement>

distributionManagement包含repository和snapshotRepository子元素,前者表示發(fā)布版本(穩(wěn)定版本)jar包的倉庫,后者表示快照版本(開發(fā)測試版本)的倉庫。

這兩個元素都需要配置id、name和url,id為遠程倉庫的唯一標識,很重要,name只是為了方便人閱讀,關鍵的url表示該倉庫的地址。

往遠程倉庫部署jar包的時候,需要認證,配置認證的方式為id,一定要與前面settings中server的id保持一致。

如果項目當前的版本是快照版本,則部署到快照版本的倉庫地址,否則就部署到發(fā)布版本的倉庫地址,因為這里只是測試演示,前面只創(chuàng)建了Release版本的倉庫bbsid,所以省略了snapshotRepository。

配置正確后,定位到要上傳的項目目錄,運行命令mvn clean deploy,Maven就會直接將項目打包生成的jar包部署到配置對應的遠程倉庫中。

2)上傳第三方jar包到遠程倉庫

方式一 (假設發(fā)布倉庫為bbsid,發(fā)布Jar包為zbb-sms-0.0.1.jar):

A. settings.xml中配置認證信息。

B. 定位到要上傳的jar包的目錄,執(zhí)行“mvn deploy:deploy-file -DgroupId=com.zxp.test -DartifactId=sms -Dversion=1.0 -Dpackaging=jar -Dfile=zbb-sms-0.0.1.jar -Durl=http://127.0.0.1:8081/nexus/content/repositories/bbsid -DrepositoryId=bbsnexus”命令。

說明:deploy:deploy-file表示發(fā)布獨立的文件。

groupId、artifactId和version可根據(jù)需要設定。(我們要傳的包為zbb-sms-0.0.1.jar,但是命令里指定-Dversion=1.0,-DartifactId=sms,所以最終上傳到倉庫后的名稱為sms-1.0.jar)

url為Nexus服務器中需要上傳的倉庫路徑。

repositoryId與server的id必須一致。

上傳到倉庫中的結(jié)果如下圖示:

方式二 Nexus控制臺直接上傳jar包 (假設發(fā)布倉庫為bbsid,發(fā)布Jar包為mysql-connector-java-5.1.43.jar):

在Repositories列表中選擇Releases,點Artifact Upload,指定GAV Definition為“GAV Parameters”,然后輸入相應的groupId、artifactId和version、Packaging,再點擊“Select Artifact(s) to Upload...”選擇指定的Jar文件,點擊“Add ActifactId”添加到Actifacts框,最后點“Upload Artifact(s)”即可。

上傳到倉庫中的jar如下圖示:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Spring Boot 2結(jié)合Spring security + JWT實現(xiàn)微信小程序登錄

    Spring Boot 2結(jié)合Spring security + JWT實現(xiàn)微信小程序登錄

    這篇文章主要介紹了Spring Boot 2結(jié)合Spring security + JWT實現(xiàn)微信小程序登錄,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 關于java中自定義注解的使用

    關于java中自定義注解的使用

    這篇文章主要介紹了關于java中自定義注解的使用,注解像一種修飾符一樣,應用于包、類型、構(gòu)造方法、方法、成員變量、參數(shù)及本地變量的聲明語句中,需要的朋友可以參考下
    2023-07-07
  • Java使用HttpClient實現(xiàn)文件下載

    Java使用HttpClient實現(xiàn)文件下載

    這篇文章主要為大家詳細介紹了Java使用HttpClient實現(xiàn)文件下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 聊聊Spring Cloud Cli 初體驗

    聊聊Spring Cloud Cli 初體驗

    這篇文章主要介紹了聊聊Spring Cloud Cli 初體驗,SpringBoot CLI 是spring Boot項目的腳手架工具。非常具有實用價值,需要的朋友可以參考下
    2018-04-04
  • springboot下使用mybatis的方法

    springboot下使用mybatis的方法

    這篇文章主要介紹了springboot下使用mybatis的方法,需要的朋友可以參考下
    2017-11-11
  • Java超詳細教你寫一個銀行存款系統(tǒng)案例

    Java超詳細教你寫一個銀行存款系統(tǒng)案例

    這篇文章主要介紹了怎么用Java來寫一個銀行的存款系統(tǒng),銀行存款主要有賬號和存款金額兩個屬性,感興趣的朋友跟隨文章往下看看吧
    2022-03-03
  • Struts2學習筆記(8)-Result常用類型

    Struts2學習筆記(8)-Result常用類型

    這篇文章主要介紹Struts2中Result四種常用的類型的用法,希望能給大家做一個參考。
    2016-06-06
  • 如何用java獲取指定日期是第幾周

    如何用java獲取指定日期是第幾周

    這篇文章主要給大家介紹了關于如何用java獲取指定日期是第幾周的相關資料,在開始之前我們需要先了解如何獲取當前日期所在的年份以及第幾周,在Java中可以使用Calendar類來獲取這些信息,需要的朋友可以參考下
    2023-09-09
  • mybatis 延遲加載的深入理解

    mybatis 延遲加載的深入理解

    這篇文章主要介紹了mybatis 延遲加載的深入理解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 淺析Java中的虛擬線程

    淺析Java中的虛擬線程

    在本篇文章中,小編將帶大家深入了解Java虛擬線程的原理、如何使用、使用的注意事項以及其他相似技術(shù)的差別,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-10-10

最新評論