zoukankan      html  css  js  c++  java
  • maven

    1、环境变量设置M2_HOME--指向Maven安装目录
    2、个性设置~/.m2/settings
     2.1 复制 M2_HOME下conf下的settings.xml
     2.2 设置代理
         <settings>
         ...
           <proxies>
             <proxy>
             <id>my-proxy</id>
             <active>true</active>
             <protocol>http</protocol>
             <host>218.14.227.197</host>
             <port>3128</port>
             <!--
             <username>***</username>
             <password>***</password>
             <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts>
             -->
             </proxy>
           </proxies>
         ...
         </settings>
    3、依赖调解 路径最短/声明优先--解决重复传递依赖的解析问题
      3.1 依赖调解(Dependency Mediation)
          Maven 引入的传递性依赖机制,一方面大大简化和方便了依赖声明,大部分情况下我们只
          需要关心项目的直接依赖是什么,而不用考虑这些直接依赖会引入什么传递性依赖。但有
          时候,当传递性依赖造成问题的时候,我们就需要清楚地知道该传递性依赖是从哪条依赖
          路径引入的。
          例如,项目 A 有这样的依赖关系:A->B->C->X(1.0)、A->D->X(2.0),X 是 A 的传递性
          依赖,但是两条依赖路径上有两个版本的 X,那么哪个 X 会被 Maven 解析使用呢?两个版
          本都被解析显然是不对的,因为那会造成依赖重复,因此必须选择一个。Maven 依赖调解
          的第一原则是:路径最近者优先。该例中 X(1.0)的路径长度为 3,而 X(2.0)的路径长
          度为 2,因此 X(2.0)会被解析使用。
          依赖调解第一原则不能解决所有问题,比如这样的依赖关系:A->B->Y(1.0)、A->C->Y
          (2.0),Y(1.0)和 Y(2.0)的依赖路径长度是一样的,都为 2。那么到底谁会被解析使
          用呢?在 Maven 2.0.8 及之前的版本中,这是不确定的,但是从 Maven 2.0.9 开始,为了
          尽可能避免构建的不确定性,Maven 定义了依赖调解的第二原则:第一声明者优先。在依
          赖路径长度相等的前提下,在 POM 中依赖声明的顺序决定了谁会被解析使用,顺序最靠
          前的那个依赖优胜。该例中,如果 B 的依赖声明在 C 之前,那么 Y(1.0)就会被解析使
          用。
      3.2 可选依赖
          假设有这样一个依赖关系,项目 A 依赖于项目 B,B 依赖于项目 X 和 Y,B 对于 X 和 Y 的
          依赖都是可选依赖:A->B、B->X(可选)、B->Y(可选)。根据传递性依赖的定义,如果
          所有这三个依赖的范围都是 compile,那么 X、Y 就是 A 的 compile 范围传递性依赖。然
          而,由于这里 X、Y 是可选依赖,依赖将不会得以传递,换句话说,X、Y 将不会对 A 有任
          何影响。A如果需要,需要显式声明。
          <project>
            <modelVersion>4.0.0</modelVersion>
            <groupId>com.juvenxu.mvnbook</groupId>
            <artifactId>project-b</artifactId>
            <version>1.0.0</version>
            <dependencies>
            <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.10</version>
            <optional>true</optional>
            </dependency>
            <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>8.4-701.jdbc3</version>
            <optional>true</optional>
            </dependency>
            </dependencies>
        </project>

  • 相关阅读:
    Jupyter notebook 读取文件的问题
    机器学习-数据清洗和特征选择
    机器学习-逻辑回归
    Java教程
    13.并发编程
    redis 实现
    CyclicBarrier介绍
    Future模式衍生出来的更高级的应用
    并发编程 futuretask
    整理POST请求方式
  • 原文地址:https://www.cnblogs.com/justart/p/11519573.html
Copyright © 2011-2022 走看看