[117]maven拉取jar包流程解析

背景

部署本地开发环境的时候,我们需要配置maven settings.xml 以便从远程仓库中拉取代码。

下载jar包的顺序

根据网络请求的便利性,请求的路径一般是 本地仓库 -> 私有仓库(私有网络)->中央仓库(由于中央仓库可能在国外我们可能需要配置镜像)。
我们执行mvn install 的时候会先本地找jar包,如果找不到就去私有仓库,如果还找不到就去中央仓库拉取代码。(当然如果你如果连不上私有仓库网络此时可以把私有仓库注释掉加快下载速度)。

私有仓库

基本上每个公司都会有自己的私有仓库 。私有仓库在settings.xml文件中对应的标签为<repository></repository>,其具体代码如下:

<profile>
            <id>fxiaoke</id>
            <repositories>
                <repository>
                    <id>release</id>
                    <name>XXX repo</name>
                    <layout>default</layout>
                    <url>http://maven.firstshare.cn/artifactory/libs-release</url>
                    <releases>
                      <enabled>true</enabled>
                      <updatePolicy>always</updatePolicy>
                      <checksumPolicy>fail</checksumPolicy>
                    </releases>
                    <snapshots>
                      <enabled>true</enabled>
                      <updatePolicy>always</updatePolicy>
                      <checksumPolicy>fail</checksumPolicy>
                    </snapshots>
                </repository>
            </repositories>

关于中央仓库

maven 中我们通过pom.xml 定义其依赖的jar包及其其他属性,如果我们有多个项目且项目的配置有很多相似的地方,此时没有必要在每个pom.xml 写一遍。我们通过继承机制来实现,只需要在父pom.xml中定义好属性子pom继承即可。

而中央仓库地址(maven 官方存放地址)就定义在超级pom.xml 文件中,超级pom文件比如pom-4.0.0.xml(maven2 为该文件)一般存放在\org\apache\maven\mode目录中。
其内容大致为:

<project>
  <modelVersion>4.0.0</modelVersion>

  <repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>https://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <name>Central Repository</name>
      <url>https://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories>

  <build>
  ......
  </build>

  <reporting>
    <outputDirectory>${project.build.directory}/site</outputDirectory>
  </reporting>

  <profiles>
    <!-- NOTE: The release profile will be removed from future versions of the super POM -->
    <profile>
      <id>release-profile</id>
        ......
    </profile>
  </profiles>
</project>

参考

至于具体项目中其结构如何处理的请参考:https://www.cnblogs.com/wkrbky/p/6353285.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • |-1-更新内容[6.从仓库解析依赖的机制(重要)] 1Maven仓库作用 仓库用来存储所有项目使用到构件,在ma...
    zlcook阅读 11,446评论 0 25
  • 简介 概述 Maven 是一个项目管理和整合工具 Maven 为开发者提供了一套完整的构建生命周期框架 Maven...
    闽越布衣阅读 9,872评论 6 39
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,222评论 6 342
  • 第一次遇到她是在我最喜欢的那间藏书室。 当时她隐约出现在几个书架外的书丛中,我假装不在意,其实我却在书架的缝隙里偷...
    是野狸猫吗阅读 2,890评论 6 1
  • 斜风细雨丝一般缠绕在心口 眼睛也跟着湿润了 心绪像断的弦 密封的瓶口撕裂开 尘封的魔像蚁虫攀爬着躯体 隐隐地如同蚀...
    莲花墨阅读 3,269评论 28 62

友情链接更多精彩内容