zoukankan      html  css  js  c++  java
  • Maven总结

    1、Maven的依赖库查询顺序更改为:

      1)在 Maven 本地资源库中搜索,如果没有找到,进入第 2 步,否则退出。

      2)在 Maven 中央存储库搜索,如果没有找到,进入第 3 步,否则退出。

      3)在java.net Maven的远程存储库(在pom.xml中的repositories配置)搜索,如果没有找到,提示错误信息,否则退出。

    2、Maven坐标(groupId、artifactId、version)

    <dependencies>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
      </dependency>
    </dependencies>

    3、Scope作用域

    1)test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖
    2)compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去
    3)provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突
    4)runtime在运行的时候依赖,在编译的时候不依赖
    默认的依赖范围是compile

    4、依赖的传递:

    作用域是test的包不会传递到引用这个项目的其它项目,但如果不是test会传递依赖到其它项目。
    如:项目A中有一个依赖包junit4.10,它的作用域是test
    现在有一个项目B,引用项目A,如果项目B要使用junit4.10就必须自己重新定义依赖关系。【因为不会传递依赖,所以不会从项目A中得到】
    但:如果作用域是其它的,不是test
    那么项目B可以直接使用不用自己再定义一个依赖关系。【因为会从项目A中自动传递依赖,而得到】


    5、依赖关系的传递(间接依赖)

    1)同级别依赖

    项目A-->P包1.0
    项目B-->P包2.0
    项目C-->项目A,项目B

    项目C得到的P包,应该是哪个呢?
    应该是项目A的P包1.0,因为在项目C中,项目A依赖关系定义在前,项目B的依赖配置定义在后。

    2)不同级别依赖,层级少的优先依赖
    如:
    A-->P1.0
    B-->A
    C-->B
    D-->P2.0

    E-->C,D 那么,E通过传递依赖得到的将会是:P2.0 (就算E中的C依赖定义在前面)

    3)排队依赖,当包通过传递,产生了冲突时可能通过排队依赖关系解决

    <exclusions>
      <exclusion>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
      </exclusion>
    </exclusiongs>

    6、发布到中央仓库

    1)在Pom中添加如下代码,指定要发布的地址

    <distributionManagement>
       <repository>
           <id>nexus-releases</id><!--这里的ID要和setting.xml中server的id对应起来,通过server的id来找用户名密码。setting.xml中的server可能会配置多个,只能通过id来区分-->
           <name>Nexus Release Repository</name><!--远程仓库名-->
           <uniqueVersion>false</uniqueVersion>
           <url>http://134.32.32.144:8081/nexus/content/repositories/releases/</url>
       </repository>
    <url>

    2)在setting.xml中配置有权限部署的Nexus账号和密码

    <server>
          <id>nexus-releases</id><!--这里了与pom中distributionManagement中配置的id对应起来-->
          <username>admin</username>
          <password>admin123</password>
    </server>
  • 相关阅读:
    VS2019 离线安装方法详解
    VS2019 实用操作
    WIN7 X64位系统安装SQL SERVER2008失败总结
    给reportview传参数的操作过程
    山寨dell mini 3i的问题
    sql backup
    基于wince.net的环境,使用pocketBuilder调用webservice所需安装环境和步骤
    写了一个通用的用户选择页面,记录一下调用方法
    回顾这几年开发医药CRM的历程
    Cumulative Update package 3 for SQL Server 2008 R2三个补丁下载地址,官网下载不直接给地址,不知为什么
  • 原文地址:https://www.cnblogs.com/aligege/p/9849296.html
Copyright © 2011-2022 走看看