maven的pom.xml中repositories和distributionManagement使用
repositories 遠程倉庫配置
在maven中pom.xml是Maven進行工作的主要配置文件
它的作用包括:配置Maven項目中需要使用的遠程倉庫,Maven項目的資源依賴關(guān)系等。
其中pom是Project Object Model(項目對象模型)的簡稱。
在pom.xml中repositories標簽的作用是用來配置maven項目的遠程倉庫。
示例如下:
<repository>
<id>nexus</id><!--遠程倉庫唯一標識符 -->
<name>Private Repository</name><!--描述 -->
<url><!--遠程倉庫url --></url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
我們先看一下的配置,你可以在它下面添加多個 ,每個都有它唯一的ID,一個描述性的name,以及最重要的,遠程倉庫的url。
此外,true告訴Maven可以從這個倉庫下載releases版本的構(gòu)件,而false告訴Maven不要從這個倉庫下載snapshot版本的構(gòu)件。
禁止從公共倉庫下載snapshot構(gòu)件是推薦的做法,因為這些構(gòu)件不穩(wěn)定,且不受你控制,你應(yīng)該避免使用。
當然,如果你想使用局域網(wǎng)內(nèi)組織內(nèi)部的倉庫,你可以激活snapshot的支持
layout:用于定位和排序構(gòu)件的倉庫布局類型-可以是default(默認)或者legacy(遺留)。
Maven 2為其倉庫提供了一個默認的布局;然而,Maven 1.x有一種不同的布局。
我們可以使用該元素指定布局是default(默認)還是legacy(遺留)。
distributionManagement 分發(fā)構(gòu)件到遠程倉庫
mvn install 會將項目生成的構(gòu)件安裝到本地Maven倉庫,mvn deploy 用來將項目生成的構(gòu)件分發(fā)到遠程Maven倉庫。
本地Maven倉庫的構(gòu)件只能供當前用戶使用,在分發(fā)到遠程Maven倉庫之后,所有能訪問該倉庫的用戶都能使用你的構(gòu)件。
我們需要配置POM的來指定Maven分發(fā)構(gòu)件的位置,
如下:
<!-- 定義snapshots庫和releases庫的nexus地址 -->
<distributionManagement>
<repository>
<!-- 庫的id -->
<id>nexus-releases</id>
<!-- 庫的url -->
<url>https://172.17.103.59:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>https://172.17.103.59:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
如果是快照版本,執(zhí)行mvn deploy時會自動發(fā)布到快照版本庫中。
而使用快照版本的模塊,在不更改版本號的情況下,直接編譯打包時,maven會自動從鏡像服務(wù)器上下載最新的快照版本。
如果是正式發(fā)布版本,那么在執(zhí)行mvn deploy時會自動發(fā)布到正式版本庫中,而使用正式版本的模塊。
在不更改版本號的情況下,編譯打包時,如果本地已經(jīng)存在該版本的模塊則使用本地的而不是主動去鏡像服務(wù)器上下載。
需要注意的是,settings.xml中server元素下id的值必須與POM中repository或snapshotRepository下id的值完全一致。
將認證信息放到settings下而非POM中,是因為POM往往是它人可見的,而settings.xml是本地的。
代碼如下:
<settings>
...
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
...
</settings>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java內(nèi)存溢出的幾個區(qū)域總結(jié)(注意避坑!)
內(nèi)存溢出是指應(yīng)用系統(tǒng)中存在無法回收的內(nèi)存或使用的內(nèi)存過多,最終使得程序運行要用到的內(nèi)存大于虛擬機能提供的最大內(nèi)存,下面這篇文章主要給大家介紹了關(guān)于Java內(nèi)存溢出的幾個區(qū)域,總結(jié)出來給大家提醒注意避坑,需要的朋友可以參考下2022-11-11
java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法
本篇文章主要介紹了java Quartz定時器任務(wù)與Spring task定時的幾種實現(xiàn)方法的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02
SpringBoot同時支持HTTPS與HTTP的實現(xiàn)示例
本文主要介紹了SpringBoot同時支持HTTPS與HTTP的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07

