Maven主题(二)------Maven的配置以及idea配置

仓库分类

  本地仓库

      1.概念:非maven工程的lib目录下一般存放的是公共的jar包,而maven工程部需要有lib目录,所有的公共jar包都存在本地仓库;
      2.本地仓库的目录:m2.repository
      3.本地仓库存在jar包目录设置:
            a.配置文件路径:settings.xml
            b.配置项:
                  <localRepository> 路径</localRepository>  例:settings.xml 文件配置    <localRepository>D:\software\apache-maven-3.3.9\repository</localRepository>
      4.构建如何进入本地仓库
            a.从远程仓库下载
            b.直接拷贝其它构建到本地仓库,比如项目组内有B依赖A,A又不在远程仓库,那直接把A拷贝到B的本地仓库

  远程仓库

     1.中央仓库

        a.超级pom文件:
              1.它是所有Maven项目的最底层的POM文件,其它的POM文件都继承于它
              2.它定义了默认的中央仓库地址信息
        b.默认的中央仓库地址信息查找方法:maven目录的lib目录下 maven-model-builder-3.3.9.jar
              1.jar包
              2.解压后查看
              3.仓库地址定义在:maven-model-builder-3.3.9\org\apache\maven\model\pom.xml 超级pom
                  <repositories>
                  <repository>
                      <id>central</id>   //central中央仓库唯一标识
                      <name>Central Repository</name>
                      <url>https://repo.maven.apache.org/maven2</url>  url:中央仓库地址
                      <layout>default</layout>  默认布局模式(构建查找模式) 通过三要素查找jar包
                      <snapshots>
                          <enabled>false</enabled>false:不从中央仓库下载快照 true:从中央仓库下载快照
                      </snapshots>
                  </repository>
              </repositories>

      2.私服仓库

          1.概念:位于中央仓库之前的直接对客户端的仓库  用户-->私服仓库-->(自定义仓库,中央仓库)

      3.其它公共库

          JBOSS仓库  Java.net仓库等

远程仓库的配置

  1.在当前项目的pom.xml文件中配置(IDEA)--只对当前项目有效

          <repositories>
                <repository>
                      <id>central</id>    --central:中央仓库唯一标识
                      <name>Central Repository</name>
                      <url>https://repo.maven.apache.org/maven2</url>  --中央仓库地址
                      <layout>default</layout>  --默认布局模式(构建查找模式)
                      <snapshots>
                            <enabled>false</enabled>  --false:不从中央仓库下载快照 true:从中央仓库下载快照
                            <updatePolicy>daily</updatePolicy> --更新策略 never:从不检查  always:每次构建都检查 interval:X 每隔X分钟检查一次
                      </snapshots>
                      <CheckSumPolicy>ignore</CheckSumPolicy>  --校验和策略:warm:警告 fail:不通过时失败 ignore:忽略
                         <releases>
                              <enabled>true</enabled>  默认为true,标识下载发型版本的构建
                         </releases>
                 </repository>
          </repositories>

  2.在settings.xml中配(全局有效)

            <mirrors>
                 <mirror>
                       <id>alimaven</id>  --仓库唯一标识,这个是阿里仓库
                      <name>aliyun maven</name>
                      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  --阿里云仓库地址作为镜像仓库
                      <mirrorOf>central</mirrorOf>  --请求规则:凡是有请求中央仓库(central)的请求都转来这里,如果是*标识所有的构建请求都转来这里
                  </mirror>
            </mirrors>

快照版本解析机制

  坐标详解

      1.坐标内容包括
            a.groupId:必选
                  1.概念:通过用java包的形式表示(也就是.(点)表示法),内容一班是组织或者公司下的某个项目
                  2.例如:org.sonatype.nexus,org.sonatype为非盈利组织,nexus为实际项目,它实际域名:nexus.sonatype.org对应
            b.artifactId:必选
                  1.概念:项目或者模块名,标识用实际项目作为前缀,后面跟模块名
                  2.举例:nexus-indexer,nexus-core
            c.version:必选
                  1.概念:版本号,通常用两个点表示
                  2.举例:1.0.0
            d.packaging:可选
                  1.概念: Maven打包方式,包括:jar(公用库,默认)、war(web包)、pom(父模块)

   快照版本

      1.快照版本
            a.为什么会存在快照版本:在开发过程中会存在过度的版本,也就是未稳定的版本,可能还没有测试完或者功能还没有完善的版本,称这些版本为快照版本
            b.格式:在版本号中体现为有关键字:SNAPSHOT或者带有时间戳
            c.举例:
                  1.2-SNAPSHOT
                  2.1-20200613.104212-13:版本号-8位日期.6位时间-快照下标
      2.快照在MAVEN内部是怎么体现的?
            a.如果在版本号中含有关键字SNAPSHOT,则MAVEN会自动打上时间戳和快照下标
            b.有了时间戳,MAVEN就可以提供最新的快照进行下载
            c.而对于本地的POM.xml文件的依赖版本号一直可以不变,比如1.2-SNAPSHOT,MAVEN始终会帮你下载到最新版本

仓库解析依赖机制

      1.依赖范围:如果构建的依赖范围为system,则直接从本地获取
      2.仓库路径:根据groupID或者artifactID计算仓库路径
      3.依赖仓库:
            a.本地仓库:根据第2步的仓库路径优先从本地仓库寻址构建,如果存在则解析成功
            b.远程仓库:如果本地仓库查找不到,则遍历所有的远程仓库进行查找
      4.依赖版本:
            a.如果版本为发行版本(不含有关键字:RELEASE、LATEST、SNAPSHOT):比如:1.2/2.1,从按照第3步的查找办法
            b.如果版本为RELEASE或者LATEST,则根据第2步的元数据文件maven-metadta.xml文件,确定最后RELEASE或者LATEST的值,如果maven-metadta.xml文件内容如下,

          则RELEASE应该是3.4.0,LATEST应该是3.5.0

公开仓库--Maven查找依赖的网站

      http://mvnrepository.com/


settings.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 
  <localRepository>D:\software\apache-maven-3.3.9\repository</localRepository>   --本地仓库

    <mirrors>
      <mirror>
       <id>alimaven</id>
       <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>   
      <mirrorOf>central</mirrorOf>     
    </mirror>
  </mirrors>

</settings>

说明:本地仓库路径为D:\software\apache-maven-3.3.9\repository

   中央仓库的地址为阿里云仓库地址 http://maven.aliyun.com/nexus/content/groups/public/,所有中央仓库的请求均走此地址下载


IDEA配置

  1.配置优先查找本地仓库,如果没有,再去中央仓库下载

    file-->settings-->maven-->Runner--> 添加:  -DarchetypeCatalog=internal

  

  2.file-->setting-->搜索maven

猜你喜欢

转载自www.cnblogs.com/husheng1987hs/p/13173400.html