一起深入探討Maven遠(yuǎn)程倉庫的配置和部署

Maven遠(yuǎn)程倉庫的配置和部署

前言:

成都創(chuàng)新互聯(lián)是一家專業(yè)提供牧野企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站制作、H5場景定制、小程序制作等業(yè)務(wù)。10年已為牧野眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

Maven 是專門用于構(gòu)建和管理Java相關(guān)項目的工具。Maven 是一個項目管理和整合工具。Maven 為開發(fā)者提供了一套完整的構(gòu)建生命周期框架。開發(fā)團(tuán)隊幾乎不用花多少時間就能夠自動完成工程的基礎(chǔ)構(gòu)建配置,因為 Maven 使用了一個標(biāo)準(zhǔn)的目錄結(jié)構(gòu)和一個默認(rèn)的構(gòu)建生命周期。

Maven 的主要目的是為開發(fā)者提供:一個可復(fù)用、可維護(hù)、更易理解的工程綜合模型;與這個模型交互的插件或者工具。

今天要跟大家一起分享探討的是Maven遠(yuǎn)程倉庫的配置和部署,下面一起進(jìn)入正題把

一、遠(yuǎn)程倉庫的配置

在平時的開發(fā)中,我們往往不會使用默認(rèn)的中央倉庫,默認(rèn)的中央倉庫訪問的速度比較慢,訪問的人或許很多,有時候也無法滿足我們項目的需求,可能項目需要的某些構(gòu)件中央倉庫中是沒有的,而在其他遠(yuǎn)程倉庫中有,如JBoss Maven倉庫。這時,可以在pom.xml中配置該倉庫,代碼如下:

<!-- 配置遠(yuǎn)程倉庫 -->
<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
repository:在repositories元素下,可以使用repository子元素聲明一個或者多個遠(yuǎn)程倉庫。
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,表示關(guān)閉JBoss倉庫的快照版本的下載支持。根據(jù)該配置,Maven只會從JBoss倉庫下載發(fā)布版的構(gòu)件,而不會下載快照版的構(gòu)件。
layout:元素值default表示倉庫的布局是Maven2及Maven3的默認(rèn)布局,而不是Maven1的布局?;静粫玫組aven1的布局。
其他:對于releases和snapshots來說,除了enabled,它們還包含另外兩個子元素updatePolicy和checksumPolicy。
1:元素updatePolicy用來配置Maven從遠(yuǎn)處倉庫檢查更新的頻率,默認(rèn)值是daily,表示Maven每天檢查一次。其他可用的值包括:never-從不檢查更新;always-每次構(gòu)建都檢查更新;interval:X-每隔X分鐘檢查一次更新(X為任意整數(shù))。
2:元素checksumPolicy用來配置Maven檢查校驗和文件的策略。當(dāng)構(gòu)建被部署到Maven倉庫中時,會同時部署對應(yīng)的檢驗和文件。在下載構(gòu)件的時候,Maven會驗證校驗和文件,如果校驗和驗證失敗,當(dāng)checksumPolicy的值為默認(rèn)的warn時,Maven會在執(zhí)行構(gòu)建時輸出警告信息,其他可用的值包括:fail-Maven遇到校驗和錯誤就讓構(gòu)建失?。籭gnore-使Maven完全忽略校驗和錯誤。
二、遠(yuǎn)程倉庫的認(rèn)證

大部分的遠(yuǎn)程倉庫不需要認(rèn)證,但是如果是自己內(nèi)部使用,為了安全起見,還是要配置認(rèn)證信息的。

配置認(rèn)證信息和配置遠(yuǎn)程倉庫不同,遠(yuǎn)程倉庫可以直接在pom.xml中配置,但是認(rèn)證信息必須配置在settings.xml文件中。這是因為pom往往是被提交到代碼倉庫中供所有成員訪問的,而settings.xml一般只存在于本機(jī)。因此,在settings.xml中配置認(rèn)證信息更為安全。

<settings>
...
<!--配置遠(yuǎn)程倉庫認(rèn)證信息-->
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
...
</settings>
這里除了配置賬號密碼之外,值關(guān)鍵的就是id了,這個id要跟你在pom.xml里面配置的遠(yuǎn)程倉庫repository的id一致,正是這個id將認(rèn)證信息與倉庫配置聯(lián)系在了一起。

三、部署構(gòu)件至遠(yuǎn)程倉庫

我們自己搭建遠(yuǎn)程倉庫的目的就是為了可以方便部署我們自己項目的構(gòu)件以及一些無法從外部倉庫直接獲取的構(gòu)件。這樣才能在開發(fā)時,供其他對團(tuán)隊成員使用。

Maven除了能對項目進(jìn)行編譯、測試、打包之外,還能將項目生成的構(gòu)件部署到遠(yuǎn)程倉庫中。首先,需要編輯項目的pom.xml文件。配置distributionManagement元素,代碼如下:

<distributionManagement>

<repository>

<id>releases</id>

<name>public</name>

<url>http://59.50.95.66:8081/nexus/content/repositories/releases</url>

</repository>

<snapshotRepository>

<id>snapshots</id>

<name>Snapshots</name>

<url>http://59.50.95.66:8081/nexus/content/repositories/snapshots</url>

</snapshotRepository>

</distributionManagement>

看代碼,從命名上就看的出來區(qū)別,repository表示表示發(fā)布版本(穩(wěn)定版本)構(gòu)件的倉庫,snapshotRepository表示快照版本(開發(fā)測試版本)的倉庫。這兩個元素都需要配置id、name和url,id為遠(yuǎn)程倉庫的唯一標(biāo)識,name是為了方便人閱讀,關(guān)鍵的url表示該倉庫的地址。

配置好了就運(yùn)行命令mvn clean deploy,Maven就會將項目構(gòu)建輸出的構(gòu)件部署到配置對應(yīng)的遠(yuǎn)程倉庫,如果項目當(dāng)前的版本是快照版本,則部署到快照版本的倉庫地址,否則就部署到發(fā)布版本的倉庫地址。

當(dāng)前項目是快照還是發(fā)布版本是通過 true 這個來區(qū)分的。

每天都會分享java有關(guān)的文章,大家可以關(guān)注下我哦

標(biāo)題名稱:一起深入探討Maven遠(yuǎn)程倉庫的配置和部署
網(wǎng)站路徑:http://muchs.cn/article34/phoepe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、電子商務(wù)、網(wǎng)站制作、動態(tài)網(wǎng)站軟件開發(fā)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)