zoukankan      html  css  js  c++  java
  • Maven最佳实践-distributionManagement

    分发构件至远程仓库
    mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。
    我们需要配置POM的distributionManagement来指定Maven分发构件的位置,如下:
     

    Maven项目的POM中,环境配置<distributionManagement>负责管理构件的发布。

    1.<distributionManagement>的基本配置

    <distributionManagement>  
      ...  
      <downloadUrl>http://jcat.ericsson.org/my-project</downloadUrl>  
      <status>deployed</status>  
    </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部署当前项目的构件到远程库时,关于远程库的配置。示例如下:

    <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>  

    具体配置参数,参考前文。

    3. <distributionManagement>的<site>配置

    除了部署当前Maven项目的构件,还可以部署当前Maven项目的网站和文档。示例如下:

    <distributionManagement>  
      ...  
      <site>  
        <id>mojo.website</id>  
        <name>Mojo Website</name>  
        <url>scp://beaver.codehaus.org/home/projects/mojo/public_html/</url>  
      </site>  
      ...  
    </distributionManagement>  

    这里的配置参数与<repository>中的对应配置参数一致。

    4. <distributionManagement>的<relocation>配置

    随着一个Maven项目的发展壮大,该Maven项目的构件可能需要重新发布到新的库。<relocation>可以将当前Maven项目以新的构件的形式发布到另一个库。示例如下:

    <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>  

     转:http://www.cnblogs.com/panxuejun/tag/maven/

  • 相关阅读:
    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Windows10+CLion+OpenCV4.5.2开发环境搭建
    Android解决部分机型WebView播放视频全屏按钮灰色无法点击、点击全屏白屏无法播放等问题
    MediaCodec.configure Picture Width(1080) or Height(2163) invalid, should N*2
    tesseract
    Caer -- a friendly API wrapper for OpenCV
    Integrating OpenCV python tool into one SKlearn MNIST example for supporting prediction
    Integrating Hub with one sklearn mnist example
    What is WSGI (Web Server Gateway Interface)?
    Hub --- 机器学习燃料(数据)的仓库
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/7805789.html
Copyright © 2011-2022 走看看