`

Maven最佳实践: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。本文还介绍了如何安装构件到本地仓库,如何分发构件至仓库。
 
转载于:<a href='
分发构件至远程仓库
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。本文还介绍了如何安装构件到本地仓库,如何分发构件至仓库。
转载于:http://tianya23.blog.51cto.com/1081650/292205/
分享到:
评论

相关推荐

    apache-maven

    - 提供详细的教程,帮助初学者逐步了解 Maven 的工作原理和最佳实践。 - **POM 参考:** - 详细介绍 Maven 的核心概念——项目对象模型(Project Object Model),包括元素的定义、作用和示例。 - **设置参考:** ...

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

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

    apache-maven-3.5.0

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

    maven 3.8.1版本私服配置版本

    配置Maven的私有仓库(也称为内部仓库或私服)是确保项目依赖项安全、可控和高效获取的关键步骤。以下将详细介绍如何配置Maven 3.8.1版本的私服。 1. **Maven私服的作用**: - 本地存储:避免频繁从中央仓库下载...

    maven 普通jar 生成规则

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

    apache-maven插件

    例如,若要配置使用特定的私服地址,可以在`&lt;distributionManagement&gt;`标签中设置repository和snapshotRepository,指定仓库的URL和其他相关信息。 以下是一个示例,展示如何在pom.xml中配置Nexus私服: ```xml ...

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

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

    maven教程-v1.0

    - **部署方式**:使用Maven的`deploy`命令将项目成果部署到远程仓库。 - **配置信息**:通过`pom.xml`中的`&lt;distributionManagement&gt;`元素来指定部署目标。 #### Maven与IDE集成 - **Eclipse集成**:Eclipse支持...

    Maven 入门指南.docx

    - 需要在 POM 文件中配置 `&lt;distributionManagement&gt;` 元素来指定远程仓库的 URL。 #### 九、高级主题 1. **多模块项目构建**: - Maven 支持构建多模块项目,每个子模块都有自己的 POM 文件。 - 多模块项目...

    Maven deploy配置方法详解

    Maven deploy 是 Maven 生命周期的一部分,负责将项目的构件部署到远程仓库中,以便其他开发者和工程共享。下面将详细介绍 Maven deploy 配置方法。 pom.xml 配置 在 pom.xml 文件中,需要在 project 标签下添加 ...

    apache-maven-3.0.4

    - **依赖管理**:Maven 自动管理项目的类库依赖,通过Maven中央仓库下载所需的JAR文件。 - **生命周期**:Maven 有一套预定义的构建生命周期,包括编译、测试、打包、集成测试、验证、部署等阶段。 - **插件**:...

    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安装配置

    - 同样,在`settings.xml`文件中也可以配置服务器认证信息,以便于Maven可以访问需要身份验证的仓库。 ```xml &lt;id&gt;deploymentRepo &lt;username&gt;repouser &lt;password&gt;repopwd ``` #### 四、总结 通过...

    Maven_Release_Plugin配置

    `settings.xml`是Maven的全局或用户级别的配置文件,包含了如仓库地址、镜像设置、认证信息等个性化设置。在发布流程中,它用于提供对私有远程仓库的访问凭证,例如SVN或Git仓库的用户名和密码。配置如下示例: ```...

    maven 环境搭建总结

    - **设置settings.xml**:这是Maven的重要配置文件,位于 `$MAVEN_HOME\conf\settings.xml`,用于指定本地仓库位置等信息。 - **本地仓库位置**:可以通过以下方式设置本地仓库的位置。 ```xml &lt;localRepository&gt;...

    Maven仓库-Nexus搭建

    需要创建一个新的仓库类型为“Hosted”的仓库,并配置Maven的`distributionManagement`元素来指定发布目标。 ### 结语 Nexus作为Maven仓库管理的得力助手,使得依赖管理和版本控制变得更加简单高效。通过以上步骤...

    maven代码自动将本地仓库中的包上传到maven私服

    本主题聚焦于如何通过Maven代码自动将本地仓库中的包上传到Maven私有仓库(Nexus或Artifactory等)。这个过程通常在项目开发过程中用于分享自定义的库或组件,以便团队成员可以方便地依赖它们。 1. Maven仓库概念 ...

    使用Maven&nexus上传下载至私库

    在企业级软件开发中,为了提高团队协作效率、确保依赖管理的安全性以及减少对外部网络的依赖,通常会搭建一个私有的Maven仓库。本文将详细介绍如何使用Nexus作为私有仓库,并结合Maven配置实现项目的依赖管理和构建...

Global site tag (gtag.js) - Google Analytics