`
betakoli
  • 浏览: 169187 次
社区版块
存档分类
最新评论

maven distributionManagement的作用

 
阅读更多
分发构件至远程仓库
mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。
我们需要配置POM的distributionManagement来指定Maven分发构件的位置,如下:
Xml代码 
  1. <project>    
  2.   ...    
  3.   <distributionManagement>    
  4.     <repository>    
  5.       <id>nexus-releases</id>    
  6.       <name>Nexus Release Repository</name>    
  7.       <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url>    
  8.     </repository>    
  9.     <snapshotRepository>    
  10.       <id>nexus-snapshots</id>    
  11.       <name>Nexus Snapshot Repository</name>    
  12.       <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url>    
  13.     </snapshotRepository>    
  14.   </distributionManagement>    
  15.   ...    
  16. </project>    
Maven区别对待release版本的构件和snapshot版本的构件,snapshot为开发过程中的版本,实时,但不稳定,release版本则比较稳定。Maven会根据你项目的版本来判断将构件分发到哪个仓库。
一般来说,分发构件到远程仓库需要认证,如果你没有配置任何认证信息,你往往会得到401错误。这个时候,如下在settings.xml中配置认证信息:
Xml代码 
  1. <settings>    
  2.   ...    
  3.   <servers>    
  4.     <server>    
  5.       <id>nexus-releases</id>    
  6.       <username>admin</username>    
  7.       <password>admin123</password>    
  8.     </server>    
  9.     <server>    
  10.       <id>nexus-snapshots</id>    
  11.       <username>admin</username>    
  12.       <password>admin123</password>    
  13.     </server>      
  14.   </servers>    
  15.   ...    
  16. </settings>  
需要注意的是,settings.xml中server元素下id的值必须与POM中repository或snapshotRepository下id的值完全一致。将认证信息放到settings下而非POM中,是因为POM往往是它人可见的,而settings.xml是本地的。
 

小结

本文介绍了Maven仓库,它是什么?本地仓库,远程仓库,中央仓库具体是指什么?并介绍了如何在POM中配置项目层次的仓库,在settings中配置用户层次的仓库,以及mirror。本文还介绍了如何安装构件到本地仓库,如何分发构件至仓库。
分享到:
评论

相关推荐

    maven 环境搭建总结

    ### Maven环境搭建与配置详解 #### 一、Maven简介 Maven是Apache下的一个开源项目,它是一种项目管理和理解工具。通过一个中心信息管理的方式,Maven能够管理项目的构建、报告和文档。Maven使用描述性的XML文件来...

    maven 简单示例+部署

    Maven的部署涉及到`distributionManagement`模块,它定义了如何发布你的项目到远程仓库。在`pom.xml`中添加如下配置: ```xml &lt;distributionManagement&gt; &lt;id&gt;your-repo-id &lt;url&gt;http://your-repo-url&lt;/url&gt; ...

    linux下搭建内网maven私服

    在 Maven 项目中,可以使用 distributionManagement 节点来部署 Jar 或 War 包到 Maven 私服仓库。例如,在 Pom.xml 文件中添加以下配置: &lt;distributionManagement&gt; &lt;id&gt;my-repo &lt;url&gt;...

    maven打包出错解决办法,亲测绝对可以!

    通过配置`&lt;distributionManagement&gt;`标签,指定发布目标。 5. **版本控制与权限管理**:Nexus支持对仓库的访问进行权限控制,以及对上传的构件进行版本管理,如SNAPSHOT和RELEASE版本的区分。 总结,解决Maven打包...

    apache-maven插件

    Apache Maven 是一个强大的项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,可以帮助开发者构建、管理和聚合Java项目。Maven通过使用一套标准的目录结构和一个XML格式的配置文件(pom.xml)...

    Maven资料.pdf

    可被继承的POM元素包括但不限于groupId、version、description、organization、developers、distributionManagement、properties、build、profiles、modules等。依赖的继承和管理也是Maven中的一个重要概念,它可以...

    maven 自动发布更新本地和远程仓库

    在项目的POM.xml文件中,我们需要配置相关的插件和属性,例如`maven-deploy-plugin`,设置`&lt;distributionManagement&gt;`元素来定义远程仓库的URL和其他相关信息。 3. **本地仓库**: Maven默认会将依赖和构建的项目...

    maven的使用以及部署原理

    在部署过程中,Maven使用`&lt;distributionManagement&gt;`标签在POM中定义部署目标,包括repository(用于存放构件)和site(用于存放项目文档)。 秘钥仓库的创建涉及到Maven的签名部署,这通常用于确保发布的工件是...

    Java发布包到maven公共仓库完整教程

    Java开发人员常常需要将自己的组件库分享给他人,这时将项目发布到Maven公共仓库成为了一个高效的选择。Maven中央仓库是Java开发者广泛使用的资源库,它允许开发者共享和获取依赖。以下是一个详细的教程,教你如何将...

    linux,nexus3.14+maven3.6.3.zip,搭建maven私服一步到位

    在IT行业中,构建一个私有的Maven仓库,也就是Maven私服,对于大型项目或团队协作而言至关重要。它能有效管理依赖库,减少网络延迟,提高构建速度。本教程将指导您在Linux环境下,利用Nexus 3.14和Maven 3.6.3快速...

    maven 3.8.1版本私服配置版本

    1. **Maven私服的作用**: - 本地存储:避免频繁从中央仓库下载相同的依赖,提高构建速度。 - 内部控制:公司或团队可以托管自己的库,包含私有库、未公开库或特定版本的库。 - 镜像:可以作为中央仓库的镜像,...

    maven教程-v1.0

    - **作用**:用于描述项目的元数据以及构建逻辑,是Maven识别和处理项目的关键。 - **结构解析**: - `&lt;groupId&gt;`:标识项目所属的组织或公司。 - `&lt;artifactId&gt;`:标识项目名称。 - `&lt;version&gt;`:指定项目当前...

    MyEclipse先配置maven环境

    最后,如果项目需要部署到远程服务器,可以在“settings.xml”中配置`distributionManagement`标签,指定部署的目标仓库。然后在执行“deploy”目标时,Maven会将打包好的文件自动上传到指定的远程仓库。 总的来说...

    maven上传jar到指定私服

    在IT行业中,Maven是一个广泛使用的Java项目管理和集成工具,它可以帮助开发者管理项目的构建、报告和文档。本文将深入探讨如何使用Maven上传一个JAR(Java Archive)文件到指定的私有Nexus仓库,这是一个常见的操作...

    maven3.5.4安装包

    4. **部署到远程仓库**: 若要将项目发布到远程仓库,配置 `distributionManagement` 节点,并运行 `mvn deploy`。 ### Maven 配置优化 1. **settings.xml**: Maven 的配置文件 `settings.xml` 可以设置本地仓库...

    Maven3实战笔记14Maven生成项目站点

    部署配置在 `pom.xml` 的 `&lt;distributionManagement&gt;` 部分进行。 7. **多模块项目**:在多模块 Maven 项目中,通过执行 `mvn site:site site:deploy` 在聚合模块上,可以生成整个项目的综合站点。 总的来说,...

    maven 普通jar 生成规则

    ### Maven 普通 JAR 生成规则及上传至中心仓库流程 在现代软件开发过程中,Maven 作为 Java 项目构建管理和依赖管理工具之一,被广泛使用。本篇文章将详细解析如何通过 Maven 构建并上传 JAR 文件到中心仓库的过程...

    apache-maven-3.5.0

    6. **配置简化**:对一些常见的配置进行了简化,比如使用`&lt;distributionManagement&gt;`标签部署到私有仓库。 7. **更好的并发性**:Maven 3.5.0在多线程执行任务方面有所优化,提高了构建的并发性。 **使用Maven进行...

    maven简单使用PPT

    - `distributionManagement`:定义发布产品的目标位置。 - `profiles`:根据环境或条件激活的不同配置。 3. **Maven仓库** Maven仓库是存储依赖库的地方,分为本地仓库(默认位于用户的家目录下,如Windows的C:/...

    maven搭建、集成,创建聚合项目问题及错误解决

    若要部署到远程仓库,还需要配置`distributionManagement`标签,并执行`mvn deploy`命令。 七、问题解决 在使用Maven过程中,可能会遇到各种问题,如依赖冲突、找不到依赖、插件执行失败等。解决这些问题的关键在于...

Global site tag (gtag.js) - Google Analytics