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)文章
RestTemplat中關(guān)于getForobject方法的使用
這篇文章主要介紹了RestTemplat中關(guān)于getForobject方法的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07springboot3.X 無法解析parameter參數(shù)問題分析
本文介紹了Spring Boot 3.2.1版本中調(diào)用接口時出現(xiàn)的參數(shù)解析問題,該錯誤是由Spring新版本加強的錯誤校驗和報錯提示導致的,在Spring 6.1之后,官方要求URL中的傳參必須使用`@PathVariable`聲明用于接收的變量,而不能省略`@RequestParam`注解,感興趣的朋友一起看看吧2025-03-03重學SpringBoot3之如何發(fā)送Email郵件功能
這篇文章主要給大家介紹了重學SpringBoot3之如何發(fā)送Email郵件功能的相關(guān)資料,文中包括環(huán)境準備、項目配置、代碼實現(xiàn)、最佳實踐和安全性建議,通過采用異步發(fā)送、重試機制、限流等最佳實踐,可以構(gòu)建一個健壯的郵件發(fā)送系統(tǒng),需要的朋友可以參考下2024-11-11Spring?Boot使用線程池處理上萬條數(shù)據(jù)插入功能
這篇文章主要介紹了Spring?Boot使用線程池處理上萬條數(shù)據(jù)插入功能,使用步驟是先創(chuàng)建一個線程池的配置,讓Spring Boot加載,用來定義如何創(chuàng)建一個ThreadPoolTaskExecutor,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2022-08-08java swing實現(xiàn)的掃雷游戲及改進版完整示例
這篇文章主要介紹了java swing實現(xiàn)的掃雷游戲及改進版,結(jié)合完整實例形式對比分析了java使用swing框架實現(xiàn)掃雷游戲功能與相關(guān)操作技巧,需要的朋友可以參考下2017-12-12詳解Spring學習總結(jié)——Spring實現(xiàn)AOP的多種方式
這篇文章主要介紹了詳解Spring學習總結(jié)——Spring實現(xiàn)AOP的多種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01Jpa 實現(xiàn)自動更新表中的創(chuàng)建日期和修改時間
這篇文章主要介紹了Jpa 實現(xiàn)自動更新表中的創(chuàng)建日期和修改時間,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01