Maven

2022-05-23  本文已影响0人  bowen_wu

概述

maven => Java 世界中最流行的自动化构建工具之一 => 划时代的包管理

特点

Search 3th package & Usage

Key Work => [packageName] maven => 选择最新版本 => select maven => copy code

3th package Usage 3th package

Classpath 类路径

-classpath | -cp => 从 Classpath 里面去寻找相关的类,之后加载它 => 每当 JVM 需要一个类时,就会在当前的 Classpath 里面找,如果碰到 jar 包,就将 jar
包解压缩,继续在解压缩的目录里面找

类的全限定类名 FQCN (目录层级)唯一确定了一个类

源代码中依赖的类还依赖了其他的类 => 传递性依赖

Classpath Hell 依赖地狱

包管理

包管理的本质

Maven 包

包冲突

包冲突相关错误:

  1. AbstractMethodError
  2. NoClassDefFoundError
  3. ClassNotFoundException
  4. LinkageError

解决包冲突:

  1. 在项目中直接引入想要依赖的包,使得依赖的包最近
  2. 将不想依赖的包告知 maven
    <!-- pom.xml -->
    <dependency>
        <groupId><groupId>
        <artifactId></artifactId>
        <version></version>
        <exclusions> // 取消 groupId 中的依赖
            <exclusion>
                <groupId></groupId>
                <artifactId></artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

Maven 生命周期

Maven 生命周期有三种模式:default | clean | site

Maven Default Lifecycle

当运行 maven test 时,将会从开始的 validate 执行,直到 test Phase。默认情况下在这些生命周期中,什么都不会做,需要开发者通过 插件(Plugin)
来指定在某个生命周期要做什么事情

Maven Plugin

知识点

  1. pom.xml => project object model
  2. 语义化版本
上一篇下一篇

猜你喜欢

热点阅读