zoukankan      html  css  js  c++  java
  • 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>  
  • 相关阅读:
    Rotation Kinematics
    离职 mark
    PnP 问题方程怎么列?
    DSO windowed optimization 代码 (4)
    Adjoint of SE(3)
    IMU 预积分推导
    DSO windowed optimization 代码 (3)
    DSO windowed optimization 代码 (2)
    OKVIS 代码框架
    DSO windowed optimization 代码 (1)
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6733240.html
Copyright © 2011-2022 走看看