maven(一) 仓库理解

maven构建配置文件分为两部分:环境配置,构建配置。环境配置主要是仓库配置,构建配置主要是项目中pom 文件依赖的jar,构建流程配置。

1.仓库说明

仓库分为本地,远程仓库 。远程仓库又包含中央默认仓库,私服,其他远程仓库

asd

2.环境配置,环境配置分为全局,用户,项目是三个级别;构建的时候按照一定顺序读取仓库下载依赖

类别 文件位置 备注
全局级别配置 maven/conf/setting.xml 中配置
用户级别配置 .m2/setting.xml 很少用到
项目级别配置 项目目录下的pom 文件

3.配置说明

(1)本地仓库配置只有全局配置在maven/conf/setting.xml中 打开localRepository 默认是注释的;

<localRepository>/you/wanted/path</localRepository>

(2)远程仓库配置

中央仓库是默认的,无法修改但是可以给中央仓库,添加镜像;

 <mirror>  
  <id>mirrorId</id>    //镜像id 一般用于下载时显示
  <mirrorOf>repositoryId</mirrorOf>   //用于需要添加镜像的源id
  <name>Human Readable Name for this Mirror.</name> //描述信心
  <url>http://my.repository.com/repo/path</url>
 </mirror>

例:镜像中央仓库到华为云

    <mirror>
        <id>huaweicloud</id>  
        <mirrorOf>central</mirrorOf>   //代理中央库
        <url>https://mirrors.huaweicloud.com/repository/maven/</url>
    </mirror>
    
    <mirror>
        <id>huaweicloud</id>  
        <mirrorOf>tainzehao</mirrorOf>   //代理pom中设置的远程id为tianzehao的源
        <url>https://mirrors.huaweicloud.com/repository/maven/</url>
    </mirror>

全局自定义远程仓库设置全profile仓库,通过 settings.xml 中的 settings.repositories.repository 配置;一般全局的profile要与activeProfiles标签联合使用
或者动态传进来

    <profiles>
     <profile>
     <id>s_profile</id>
     <repositories>
      <repository>
       <id>settings_profile_repo</id>
       <name>netease</name>
       <url>http://mirrors.163.com/maven/repository/maven-public/</url>
       <releases>
        <enabled>true</enabled>
       </releases>
       <snapshots>
        <enabled>true</enabled>
       </snapshots>
      </repository>
     </repositories>
     </profile>
    </profiles>
    
   <activeProfiles/>  //通过这个标签来选择激活

私服也可以通过这个来定义远程仓库

项目级设置仓库,在项目pom中定义远程仓库地址

    <repositories>
        <repository>
          <id>jdk14</id>
          <name>Repository for JDK 1.4 builds</name>
          <url>http://www.myhost.com/maven/jdk14</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
    </repositories>

项目profile仓库,通过 pom.xml 中的 project.profiles.profile.repositories.repository 配置

总结仓库配置可以分为6中

名称 说明 配置方式
本地仓库 本机下载存储的路径 maven/conf/setting.xml 标签localRepository
中央仓库 无需设置有个默认id central
全局远程仓库 全局的远程仓库,可以用来搭建私服,优先获取仓库 一般与标签activeProfiles 连用 在maven/conf/setting.xml中配置
镜像仓库 镜像仓库可以镜像任何远程仓库只要id唯一对应,其实镜像仓库只是算个接口标签不算仓库 在maven/conf/setting.xml中配置
项目远程仓库 直接在写在项目中的仓库地址 由pom.xml 文件配置
项目profile远程仓库 project.profiles.profile.repositories.repository 配置

重要总结

这些仓库搜索顺序是 local_repo(本地仓库) > settings_profile_repo(全局远程仓库) > pom_profile_repo(项目profile远程仓库) > pom_repositories(项目远程仓库) > settings_mirror(镜像仓库) > central(中央仓库)
这写都配置的情况下,是按照这个顺序收缩的,找不到就报错;

如果没有找到说明是镜像配置不够全,这是我常用的镜像配置。也可以自行查找阿里云的镜像说明https://developer.aliyun.com/mvn/guide

<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/central</url>
<mirrorOf>central</mirrorOf>
</mirror>

 <mirror>
   <id>alicentral</id>
   <name>aliyun maven</name>
   <url>https://maven.aliyun.com/repository/public</url>
   <mirrorOf>central</mirrorOf>
 </mirror>

 <mirror>
   <id>alimavenspring</id>
   <name>aliyun maven</name>
   <url>https://maven.aliyun.com/repository/spring</url>
   <mirrorOf>spring</mirrorOf>
 </mirror>
 <mirror>
   <id>alimavenspringplugin</id>
   <name>aliyun maven</name>
   <url>https://maven.aliyun.com/repository/spring-plugin</url>
   <mirrorOf>spring-plugin</mirrorOf>
 </mirror>
</mirrors>

附:setting 标签配置说明

 <?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">

<localRepository>H:/.m2/repository</localRepository> 
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
 <mirror>
   <id>alicentral</id>
   <name>aliyun maven</name>
   <url>https://maven.aliyun.com/repository/public</url>
   <mirrorOf>central</mirrorOf>
 </mirror>
 <mirror>
   <id>alimavenspring</id>
   <name>aliyun maven</name>
   <url>https://maven.aliyun.com/repository/spring</url>
   <mirrorOf>spring</mirrorOf>
 </mirror>
</mirrors>
<profiles>
</profiles>

</settings>

标签配置说明参考连接csdn

标签配置说明参考连接JB

仓库搜索顺序前人种树

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容