Maven pom的distributionManagement配置方式
Maven pom的distributionManagement配置方式
distributionManagement的作用是"分發(fā)構件至遠程倉庫"。
mvn install 會將項目生成的構件安裝到本地Maven倉庫,mvn deploy 用來將項目生成的構件分發(fā)到遠程Maven倉庫。
本地Maven倉庫的構件只能供當前用戶使用,在分發(fā)到遠程Maven倉庫之后,所有能訪問該倉庫的用戶都能使用你的構件。
我們需要配置POM的distributionManagement來指定Maven分發(fā)構件的位置。
<distributionManagement>的作用:負責管理構件的發(fā)布。這是一個環(huán)境變量。
1.構件的發(fā)布
Maven項目的POM中,環(huán)境配置<distributionManagement>負責管理構件的發(fā)布。
<distributionManagement> ... <downloadUrl>http://jcat.ericsson.org/my-project</downloadUrl> <status>deployed</status> </distributionManagement>
<downloadUrl> URL </downloadUrl> 其它的Maven項目可以通過該URL下載并引用當前Maven項目的構件。
<status> 當前Maven項目的狀態(tài)。
可用的狀態(tài)有以下幾種:
none
:未指明狀態(tài),默認值converted
:該Maven項目的構件已經(jīng)被轉換為兼容Maven 2partner
:該Maven項目的構件保持與另一個庫的Maven版本一致deployed
:該Maven項目的構件是通過Maven 2或Maven 3發(fā)布的,最常用的值verified
:該Maven項目的構件已經(jīng)被驗證過
2.推送倉庫設置(常用)
2.1 <distributionManagement>中的<repository> <snapshotRepository>
<distributionManagement> <repository> <uniqueVersion>false</uniqueVersion> <id>corp1</id> <name>Corporate Repository</name> <url>scp://repo/maven2</url> <layout>default</layout> </repository> <snapshotRepository> <uniqueVersion>true</uniqueVersion> <id>propSnap</id> <name>Propellors Snapshots</name> <url>sftp://propellers.net/maven</url> <layout>legacy</layout> </snapshotRepository> ... </distributionManagement>
- <uniqueVersion>指定是否產(chǎn)生一個唯一性的version number還是使用address里的其中version部分.(true or false)
- <id> 庫的id
- <name> 庫的名稱
- <url> 庫的url
- <layout> default或者legacy
2.2 <distributionManagement> 中的 <repository> 和 <snapshotsrepository>各自的含義
maven倉庫分為兩種 release發(fā)布倉庫(<repository>) 和 snapshot快照倉庫(<snapshotsrepository>)。
snapshot
快照倉庫用于保存開發(fā)過程中的不穩(wěn)定版本。release
正式倉庫用來保存穩(wěn)定的發(fā)行版本。
定義一個組件/模塊為快照版本 只需要在pom文件中的該模板的版本號后面加上 -SNAPSHOT就可以了。 注意:必須是大寫。
maven會根據(jù)模塊的版本號(pom文件中的<version>版本號</version>)中是否帶有-SNAPSHOT來判斷這個是快照版本還是正式版本。
如果是快照版本:
- 在mvn deploy時會自動發(fā)布到快照版本庫中。
- 而使用快照版本的模塊,在不更改版本號的情況下,直接編譯打包時,maven會自動從鏡像服務器上下載最新的快照版本。
如果是正式發(fā)布版本:
- 那么在mvn deploy時會自動發(fā)布到正式版本庫中。
- 而使用正式版本的模塊,在不更改版本號的情況下,編譯打包時,如果本地已經(jīng)存在該版本的模塊則使用本地的而不是主動去鏡像服務器上下載。
3.部署網(wǎng)站和文檔
<distributionManagement>的<site>配置,除了部署當前Maven項目的構件,還可以部署當前Maven項目的網(wǎng)站和文檔。
示例如下:
<distributionManagement> ... <site> <id>mojo.website</id> <name>Mojo Website</name> <url>scp://beaver.codehaus.org/home/projects/mojo/public_html/</url> </site> ... </distributionManagement>
4.重命名構件
隨著一個Maven項目的發(fā)展壯大,該Maven項目的構件可能需要重新發(fā)布到新的庫。
<relocation>可以將當前Maven項目以新的構件的形式發(fā)布到另一個庫。
<distributionManagement> ... <relocation> <groupId>org.apache</groupId> <artifactId>my-project</artifactId> <version>1.0</version> <message>We have moved the Project under Apache</message> </relocation> ... </distributionManagement>
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java 如何讀取Excel格式xls、xlsx數(shù)據(jù)工具類
這篇文章主要介紹了Java 如何讀取Excel格式xls、xlsx數(shù)據(jù)工具類的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09詳談spring中bean注入無效和new創(chuàng)建對象的區(qū)別
這篇文章主要介紹了spring中bean注入無效和new創(chuàng)建對象的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02淺析如何在SpringBoot中實現(xiàn)數(shù)據(jù)脫敏
脫敏是指在不改變原數(shù)據(jù)結構的前提下,通過某種方式處理數(shù)據(jù),使數(shù)據(jù)不能直接暴露用戶的真實信息,下面我們就來看看SpringBoot中實現(xiàn)數(shù)據(jù)脫敏的具體方法吧2024-03-03劍指Offer之Java算法習題精講數(shù)組與字符和等差數(shù)列
跟著思路走,之后從簡單題入手,反復去看,做過之后可能會忘記,之后再做一次,記不住就反復做,反復尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質的變化2022-03-03