Maven最佳實踐-distributionManagement


分發構件至遠程倉庫
mvn install 會將項目生成的構件安裝到本地Maven倉庫,mvn deploy 用來將項目生成的構件分發到遠程Maven倉庫。本地Maven倉庫的構件只能供當前用戶使用,在分發到遠程Maven倉庫之后,所有能訪問該倉庫的用戶都能使用你的構件。
我們需要配置POM的distributionManagement來指定Maven分發構件的位置,如下:
 

Maven項目的POM中,環境配置<distributionManagement>負責管理構件的發布。

 

1.<distributionManagement>的基本配置

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <distributionManagement>  
  2.   ...  
  3.   <downloadUrl>http://jcat.ericsson.org/my-project</downloadUrl>  
  4.   <status>deployed</status>  
  5. </distributionManagement>  
說明:

 

 

  • downloadUrl,一個URL,其他Maven項目可以通過該URL下載並引用當前Maven項目的構件。注意區別本文下面的<repository>中的URL,<repository>中的URL給出了當前Maven項目的構件的發布URL。
  • status,當前Maven項目的狀態,可用的狀態如下所示。注意,該值是由Maven自動設置,永遠不要人工設置。
    • none,未指明狀態,默認值
    • converted,該Maven項目的構件已經被轉換為兼容Maven 2
    • partner,該Maven項目的構件保持與另一個庫的Maven版本一致
    • deployed,該Maven項目的構件是通過Maven 2或Maven 3發布的,最常用的值
    • verified,該Maven項目的構件已經被驗證過

 

2.<distributionManagement>的<repository>配置

給出Maven部署當前項目的構件到遠程庫時,關於遠程庫的配置。示例如下:

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <distributionManagement>  
  2.   <repository>  
  3.     <uniqueVersion>false</uniqueVersion>  
  4.     <id>corp1</id>  
  5.     <name>Corporate Repository</name>  
  6.     <url>scp://repo/maven2</url>  
  7.     <layout>default</layout>  
  8.   </repository>  
  9.   <snapshotRepository>  
  10.     <uniqueVersion>true</uniqueVersion>  
  11.     <id>propSnap</id>  
  12.     <name>Propellors Snapshots</name>  
  13.     <url>sftp://propellers.net/maven</url>  
  14.     <layout>legacy</layout>  
  15.   </snapshotRepository>  
  16.   ...  
  17. </distributionManagement>  
具體配置參數,參考前文。

 

3. <distributionManagement>的<site>配置

除了部署當前Maven項目的構件,還可以部署當前Maven項目的網站和文檔。示例如下:

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <distributionManagement>  
  2.   ...  
  3.   <site>  
  4.     <id>mojo.website</id>  
  5.     <name>Mojo Website</name>  
  6.     <url>scp://beaver.codehaus.org/home/projects/mojo/public_html/</url>  
  7.   </site>  
  8.   ...  
  9. </distributionManagement>  
這里的配置參數與<repository>中的對應配置參數一致。

 

4. <distributionManagement>的<relocation>配置

隨着一個Maven項目的發展壯大,該Maven項目的構件可能需要重新發布到新的庫。<relocation>可以將當前Maven項目以新的構件的形式發布到另一個庫。示例如下:

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <distributionManagement>  
  2.   ...  
  3.   <relocation>  
  4.     <groupId>org.apache</groupId>  
  5.     <artifactId>my-project</artifactId>  
  6.     <version>1.0</version>  
  7.     <message>We have moved the Project under Apache</message>  
  8.   </relocation>  
  9.   ...  
  10. </distributionManagement>  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM