【Maven实战】之依赖,仓库,镜像

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前言

  • 本文仅仅是为了记录学习【maven实战】知识点以及相关拓展,所以有些知识点也仅仅是一笔带过,所以需要了解的朋友可以去阅读【maven实战】这本书。

依赖

依赖配置

  • groupId,artifactId,version:依赖的基本坐标
  • type:依赖类型,默认值Jar
  • optional;标记依赖是否可选
  • exclusions:用来排除传递性依赖
  • scope:依赖范围
  • 代码如下:

    ...
    
        
            ...
            ...
            ...
            ...
            ...
            ...
            
                ...
                ...
            
        
    
    ...

依赖范围【scope】

三种classpath

  • 编译classpath
  • 测试classpath
  • 运行classpath

五种依赖范围

  • compile:编译依赖范围。默认依赖范围。在三种classpath有效例如:【spring-core】
  • test:测试依赖范围。只在test-classpath有效。例如【Junit】
  • provided:已提供有效范围。在编译,测试classpath有效。例如:【servlet-api】-运行时,容器已经提供。
  • runtime:运行时依赖范围。测试,运行classpath有效。例如【JDBC驱动实现】
  • system:系统依赖范围。在编译,测试classpath有效。使用时,需通过systemPath元素显试地指定依赖文件路径,由于不是maven仓库解析,与本机绑定,可能造成构建的不可移植。
  • import:导入依赖范围。不会对三种classpath产生实际的影响。

  • 查看已解析依赖
mvn dependency:list
  • 查看依赖树
mvn dependency:tree
  • 解析依赖
mvn dependency:analyze

仓库

  • 私仓

  • 节省自己的外网带宽

  • 加速maven构建

  • 部署第三方构建

  • 提高稳定性,增强控制

  • 降低中央仓库的负荷

  • 发布版本

  • 用来保存稳定的发行版本

  • 快照版本

  • 快照仓库用于保存开发过程中的不稳定版本

镜像

  • 如果仓库X可以提供仓库Y的存储的所有内容,那么可以认为X是Y的一个镜像。

    ...
    
        
            internal-repository
            Internal Respository Manager
            http://192.168.1.1/maven2
            *
        
    
    ...

该配置表示是所有的Maven仓库的镜像,任何对远程仓库的请求都会被转发【http://192.168.1.1/maven2】。如果该镜像仓库需要认证,则配置一个id为【internal-repository】的server即可,如下:
 
      deploymentRepo_releases
      repouser
      repopwd
    
  • 1.* 匹配所有远程仓库。
  • 2.external:* 匹配所有远程仓库,使用localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。
  • 3.repo1,repo2 匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
  • 4.*,!repo1 匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除

仓库和镜像的概念

  • repository是统一存放所有maven项目共享的构件的位置。
  • mirror则相当于一个代理,它会拦截去指定的远程repository下载构件的请求,然后从自己这里找出构件回送给客户端。配置mirror的目的一般是出于网速考虑。mirror本身并不是repository,它只是起到远程repository的网络加速器的作用

maven仓库镜像站

1.阿里云的镜像站

    nexus-aliyun
    Nexus aliyun
    http://maven.aliyun.com/nexus/content/groups/public/
    central

2.maven官方运维的2号仓库

    repo2
    Mirror from Maven Repo2
    http://repo2.maven.org/maven2/
    central


3-maven在UK架设的仓库(有时候速度会比官方2号仓库快)

    ui
    Mirror from UK
    http://uk.maven.org/maven2/
    central

4.JBoss的仓库

    jboss-public-repository-group
    central
    JBoss Public Repository Group
    http://repository.jboss.org/nexus/content/groups/public

仓库搜索服务

  • 1, Sonatype Nexus
  • http://repository.sonatype.org/
  • 2, Jarvana
  • http://www.jarvana.com/
  • 3, MVNbrowser
  • http://www.mvnbrowser.com
  • 4, MVNrepository
  • http://mvnrepository.com/

转载于:https://my.oschina.net/u/3413394/blog/1581795

你可能感兴趣的:(【Maven实战】之依赖,仓库,镜像)