美文网首页
Maven、Java的包管理的理解

Maven、Java的包管理的理解

作者: YQY_苑 | 来源:发表于2020-02-06 21:02 被阅读0次

1.什么是包

  • JVM的工作被设计得相当简单:
    1. 执行一个类的字节码
    2. 假如这个过程中碰到了新的类,加载他

那么去哪里加载他呢?

2. 类路径(Classpath)

  • 什么是类路径:-classpath/-cp
  • 类的全限定类名(目录层级)唯一确定了一个类
  • 包就是把许多类放在一起打的压缩包

3. Classpath hell

  • 传递性依赖是指你依赖的类还依赖了别的类
  • 全限定类名是类的唯一标识
  • 当多个同名类同时出现在Classpath中,就是噩梦的开始

4. 什么是包管理

  • 你要使用一些第三方类,就要告诉JVM从哪里找
  • 包管理的实质就是告诉JVM如何找到所需的第三方库以及成功地解* * 决其中地冲突问题
  1. Maven——划时代的包管理工具
  • 约定优于配置(Convention over configuration)
  • 必须强调,Maven远远不止是包管理工具
  • Maven的包按照约定为所有的包编号,方便检索,groupId/artifactId/version
  • 依赖冲突的解决原则:最近的胜出
  • 当你看到如下异常的时候:
    1. AbstractMethodError
    2. NoClassDefFoundError
    3. ClassNotFoundException
    4. LinkageError
  • 一般就是包冲突了,解决方法:
    1. 单独声明需要引用的特定包
    2. 排除掉冲突的包

相关文章

网友评论

      本文标题:Maven、Java的包管理的理解

      本文链接:https://www.haomeiwen.com/subject/exauxhtx.html