最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven入門(mén)之使用Nexus搭建Maven私服及上傳下載jar包

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

一. 私服搭建及配置

1 . 私服簡(jiǎn)介

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

 

我們可以使用專門(mén)的 Maven 倉(cāng)庫(kù)管理軟件來(lái)搭建私服,比如:Apache ArchivaArtifactory,Sonatype Nexus。這里我們使用 Sonatype Nexus。

2 . 安裝Nexus

2 . 1 . 下載Nexus

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

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

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

1.執(zhí)行nexus命令

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

3.打開(kāi)瀏覽器,訪問(wèn):http://localhost:8081/nexus/:

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

4 . Nexus預(yù)置的倉(cāng)庫(kù)

4.1 類(lèi)型介紹

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

這里簡(jiǎn)單介紹下幾種repository的類(lèi)型:

Ø hosted,本地倉(cāng)庫(kù),通常我們會(huì)部署自己的構(gòu)件到這一類(lèi)型的倉(cāng)庫(kù)。比如公司的第二方庫(kù)。

Ø proxy,代理倉(cāng)庫(kù),它們被用來(lái)代理遠(yuǎn)程的公共倉(cāng)庫(kù),如maven中央倉(cāng)庫(kù)。

Ø group,倉(cāng)庫(kù)組,用來(lái)合并多個(gè)hosted/proxy倉(cāng)庫(kù),當(dāng)你的項(xiàng)目希望在多個(gè)repository使用資源時(shí)就不需要多次引用了,只需要引用一個(gè)group即可。

4.2 管理本地倉(cāng)庫(kù)

我們前面講到類(lèi)型為hosted的為本地倉(cāng)庫(kù),Nexus預(yù)置了3個(gè)本地倉(cāng)庫(kù),分別是Releases, Snapshots, 3rd Party. 分別講一下這三個(gè)預(yù)置的倉(cāng)庫(kù)都是做什么用的:

Releases:

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

Snapshots:

這個(gè)倉(cāng)庫(kù)非常的有用, 它的目的是讓我們可以發(fā)布那些非release版本, 非穩(wěn)定版本, 比如我們?cè)趖runk下開(kāi)發(fā)一個(gè)項(xiàng)目,在正式release之前你可能需要臨時(shí)發(fā)布一個(gè)版本給你的同伴使用, 因?yàn)槟愕耐檎谝蕾嚹愕哪K開(kāi)發(fā), 那么這個(gè)時(shí)候我們就可以發(fā)布Snapshot版本到這個(gè)倉(cāng)庫(kù), 你的同伴就可以通過(guò)簡(jiǎn)單的命令來(lái)獲取和使用這個(gè)臨時(shí)版本.

3rd Party:

顧名思義, 第三方庫(kù), 你可能會(huì)問(wèn)不是有中央倉(cāng)庫(kù)來(lái)管理第三方庫(kù)嘛,沒(méi)錯(cuò), 這里的是指可以讓你添加自己的第三方庫(kù), 比如有些構(gòu)件在中央倉(cāng)庫(kù)是不存在的. 比如你在中央倉(cāng)庫(kù)找不到Oracle 的JDBC驅(qū)動(dòng), 這個(gè)時(shí)候我們就需要自己添加到3rdparty倉(cāng)庫(kù)。

4.3 在Nexus為自己的項(xiàng)目手動(dòng)單獨(dú)建庫(kù)

1. 建庫(kù),Add-- >HostedRepository

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

2. 然后選擇PublicRepositories,打開(kāi)configuration選項(xiàng)卡

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

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

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


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

二. 利用搭建的私服,進(jìn)行上傳和下載jar包

1. 遠(yuǎn)程倉(cāng)庫(kù)的認(rèn)證

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

<settings>
  ...
  <!--配置遠(yuǎn)程倉(cāng)庫(kù)認(rèn)證信息-->
  <servers>
   <server>
    <id>bbsnexus</id>
    <username>licui</username>
    <password>a111111</password>
   </server>
  </servers>
  ...
 </settings>

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

2. 配置遠(yuǎn)程倉(cāng)庫(kù)

如果只有一個(gè)項(xiàng)目,可以配置在項(xiàng)目的pom文件中:

  

如果有多個(gè)項(xiàng)目時(shí),可以將如上配置放到Maven的Settings文件中:

repository:在repositories元素下,可以使用repository子元素聲明一個(gè)或者多個(gè)遠(yuǎn)程倉(cāng)庫(kù)。

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

name:倉(cāng)庫(kù)的名稱,讓我們直觀方便的知道倉(cāng)庫(kù)是哪個(gè),暫時(shí)沒(méi)發(fā)現(xiàn)其他太大的含義。

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

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

layout:元素值default表示倉(cāng)庫(kù)的布局是Maven2及Maven3的默認(rèn)布局,而不是Maven1的布局?;静粫?huì)用到Maven1的布局。

其他:對(duì)于releases和snapshots來(lái)說(shuō),除了enabled,它們還包含另外兩個(gè)子元素updatePolicy和checksumPolicy。

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

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

3.配置倉(cāng)庫(kù)鏡像

默認(rèn)的,如果本地倉(cāng)庫(kù)找不到依賴的構(gòu)件,這時(shí)需要東西時(shí)先到Nexus上找,如果發(fā)現(xiàn)Nexus服務(wù)關(guān)閉后,會(huì)自動(dòng)到中央倉(cāng)庫(kù)找。

如果我們想覆蓋中央倉(cāng)庫(kù)的默認(rèn)地址,強(qiáng)制依賴的東西都到Nexus中去找,即使Nexus關(guān)閉也不會(huì)到中央工廠去下載:

修改Maven的Settings文件:

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

4.上傳jar包到遠(yuǎn)程倉(cāng)庫(kù)

1)將已有的項(xiàng)目打成jar包上傳到私服服務(wù)器

首先需要在pom.xml中配置上傳倉(cāng)庫(kù)的地址,配置distributionManagement元素,倉(cāng)庫(kù)地址指向前面自定義的倉(cāng)庫(kù)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包的倉(cāng)庫(kù),后者表示快照版本(開(kāi)發(fā)測(cè)試版本)的倉(cāng)庫(kù)。

這兩個(gè)元素都需要配置id、name和url,id為遠(yuǎn)程倉(cāng)庫(kù)的唯一標(biāo)識(shí),很重要,name只是為了方便人閱讀,關(guān)鍵的url表示該倉(cāng)庫(kù)的地址。

往遠(yuǎn)程倉(cāng)庫(kù)部署jar包的時(shí)候,需要認(rèn)證,配置認(rèn)證的方式為id,一定要與前面settings中server的id保持一致。

如果項(xiàng)目當(dāng)前的版本是快照版本,則部署到快照版本的倉(cāng)庫(kù)地址,否則就部署到發(fā)布版本的倉(cāng)庫(kù)地址,因?yàn)檫@里只是測(cè)試演示,前面只創(chuàng)建了Release版本的倉(cāng)庫(kù)bbsid,所以省略了snapshotRepository。

配置正確后,定位到要上傳的項(xiàng)目目錄,運(yùn)行命令mvn clean deploy,Maven就會(huì)直接將項(xiàng)目打包生成的jar包部署到配置對(duì)應(yīng)的遠(yuǎn)程倉(cāng)庫(kù)中。

2)上傳第三方j(luò)ar包到遠(yuǎn)程倉(cāng)庫(kù)

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

A. settings.xml中配置認(rèn)證信息。

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”命令。

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

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

url為Nexus服務(wù)器中需要上傳的倉(cāng)庫(kù)路徑。

repositoryId與server的id必須一致。

上傳到倉(cāng)庫(kù)中的結(jié)果如下圖示:

方式二 Nexus控制臺(tái)直接上傳jar包 (假設(shè)發(fā)布倉(cāng)庫(kù)為bbsid,發(fā)布Jar包為mysql-connector-java-5.1.43.jar):

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

上傳到倉(cāng)庫(kù)中的jar如下圖示:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springcloud中Feign傳遞參數(shù)的過(guò)程解析

    Springcloud中Feign傳遞參數(shù)的過(guò)程解析

    這篇文章主要介紹了Springcloud中Feign傳遞參數(shù)的過(guò)程,單個(gè)參數(shù)的傳值有兩種方式,第一種使用@RequestParam/@PathVariable進(jìn)行傳值,傳遞多個(gè)參數(shù):多個(gè)參數(shù)的傳值可以使用多個(gè)@RequestParam來(lái)進(jìn)行傳參,需要的朋友可以參考下
    2023-09-09
  • Java設(shè)計(jì)模式之建造者模式的示例詳解

    Java設(shè)計(jì)模式之建造者模式的示例詳解

    建造者模式,是一種對(duì)象構(gòu)建模式?它可以將復(fù)雜對(duì)象的建造過(guò)程抽象出來(lái),使這個(gè)抽象過(guò)程的不同實(shí)現(xiàn)方法可以構(gòu)造出不同表現(xiàn)的對(duì)象。本文將通過(guò)示例講解建造者模式,需要的可以參考一下
    2022-10-10
  • Spring中的底層架構(gòu)核心概念類(lèi)型轉(zhuǎn)換器詳解

    Spring中的底層架構(gòu)核心概念類(lèi)型轉(zhuǎn)換器詳解

    這篇文章主要介紹了Spring中的底層架構(gòu)核心概念類(lèi)型轉(zhuǎn)換器詳解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • 如何在攔截器中獲取url路徑里面@PathVariable的參數(shù)值

    如何在攔截器中獲取url路徑里面@PathVariable的參數(shù)值

    這篇文章主要介紹了如何在攔截器中獲取url路徑里面@PathVariable的參數(shù)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • spring mvc中直接注入的HttpServletRequst安全嗎

    spring mvc中直接注入的HttpServletRequst安全嗎

    這篇文章主要給大家介紹了關(guān)于spring mvc中直接注入的HttpServletRequst是不是安全的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2018-04-04
  • Java-IO流實(shí)驗(yàn)

    Java-IO流實(shí)驗(yàn)

    流是一種抽象概念,它代表了數(shù)據(jù)的無(wú)結(jié)構(gòu)化傳遞。。用來(lái)進(jìn)行輸入輸出操作的流就稱為IO流。換句話說(shuō),IO流就是以流的方式進(jìn)行輸入輸出,希望能給您帶來(lái)幫助
    2021-06-06
  • MySQL中關(guān)鍵字UNION和UNION ALL的區(qū)別

    MySQL中關(guān)鍵字UNION和UNION ALL的區(qū)別

    本文主要介紹了MySQL中關(guān)鍵字UNION和UNION ALL的區(qū)別,深入探討UNION和UNION ALL的定義、用法、主要區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • MyBatis如何實(shí)現(xiàn)多表查詢(多對(duì)一、一對(duì)多)

    MyBatis如何實(shí)現(xiàn)多表查詢(多對(duì)一、一對(duì)多)

    這篇文章主要給大家介紹了關(guān)于MyBatis如何實(shí)現(xiàn)多表查詢(多對(duì)一、一對(duì)多)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • IDEA的Mybatis Log Plugin插件配置和使用詳解

    IDEA的Mybatis Log Plugin插件配置和使用詳解

    這篇文章主要介紹了IDEA的Mybatis Log Plugin插件配置和使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 解決mybatis無(wú)法給帶有下劃線屬性賦值問(wèn)題

    解決mybatis無(wú)法給帶有下劃線屬性賦值問(wèn)題

    這篇文章主要介紹了解決mybatis無(wú)法給帶有下劃線屬性賦值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評(píng)論

大名县| 原平市| 富裕县| 翁牛特旗| 江津市| 冕宁县| 广昌县| 建德市| 赤峰市| 会宁县| 深圳市| 满城县| 礼泉县| 普洱| 来宾市| 上饶县| 马龙县| 东光县| 古田县| 开江县| 昭苏县| 凌源市| 万安县| 邹平县| 桐梓县| 安塞县| 铁岭市| 鱼台县| 信阳市| 贺州市| 遂平县| 黄梅县| 婺源县| 铜陵市| 卢湾区| 黔西| 教育| 武安市| 集贤县| 格尔木市| 扎兰屯市|