Maven 安装目录的详细介绍
Maven 安装目录的详细介绍
前言:
Maven 作为一款优秀的构建工具、依赖管理工具和项目管理工具,已经被业界广泛应用,我们可以利用 Maven 对项目进行清理、测试、构建、打包、部署等操作。在此,我们就 Maven 的安装目录,进行解读。
正文
从 Apache Maven 官网下载 Maven 的安装包并解压之后,进入安装目录,我们会看到如下内容:
- bin
- boot
- conf
- lib
- LICENSE.txt
- NOTICE.txt
- README.txt
接下来,分别解读以上目录的内容及功能:
第 1 个:bin
该目录包含了mvn运行的脚本,分别为mvn、mvn.bat、mvnDebug、mvnDebug.bat和m2.conf,这些脚本用来配置 Java 命令,准备 CLASSPATH 和相关的 Java 系统属性,然后执行 Java 命令。其中,mvn是基于 UNIX 平台的shell脚本,mvn.bat是基于 Windows 平台的bat脚本;同理,mvnDebug是基于 UNIX 平台的shell脚本,mvnDebug.bat是基于 Windows 平台的bat脚本。在命令行输入任何一条mvn命令时,实际上就是调用这些脚本。而mvn和mvnDebug的区别就在于后者比前者多了一条MAVEN_DEBUG_OPTS配置,其作用就是在运行 Maven 时开启debug,以便调试 Maven 本身。此外,m2.conf是classworlds的配置文件。
第 2 个:boot
该目录只包含一个文件,以maven 3.0为例,该文件为plexus-classworlds-2.2.3.jar。plexus-classworlds是一个类加载器框架,相对于默认的 Java 类加载器,它提供了更丰富的语法以方便配置,Maven 使用该框架加载自己的类库。
第 3 个:conf
该目录包含了要给非常重要的文件settings.xml。直接修改该文件,就能再机器上全局地定制 Maven 的行为。一般情况下,我们更偏向于复制该文件至~/.m2/目录下(~表示用户目录),然后修改该文件,在用户范围定制 Maven 的行为。
第 4 个:lib
该目录包含了所有 Maven 运行时需要的 Java 类库,Maven 本身是分模块开发的,因此用户能看到诸如maven-core-3.0.jar和maven-model-3.0.jar之类的文件。此外,这里还包含一些 Maven 用到的第三方依赖,如common-cli-1.2.jar和google-collection-1.0.jar等。对于 Maven 2 来说,该目录只包含一个如maven-2.2.1-uber.jar的文件,原本各为独立的 JAR 文件的 Maven 模块和第三方类库都被拆解后重新合并到了这个 JAR 文件中。可以说,lib目录就是真正的 Maven。还有一点值得一提的是,用户可以在这个目录中找到 Maven 内置的超级 POM。
第 5 个:LICENSE.txt
该文件记录了 Maven 使用的软件许可证 Apache License Version 2.0。
第 6 个:NOTICE.txt
该文件记录了 Maven 包含的第三方软件。
第 7 个:README.txt
该文件则包含了 Maven 的简要介绍,包括安装需求以及如何安装的简要指令等。
如上所述,至此,咱们就将 Maven 的安装目录里面的内容全部解读完毕啦!
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持,大家共同进步!
- Android自定义 View 实战之 StickerView
- 十分钟搞定酷炫动画,Android自定义 View 入门
- 基础篇章:关于 React Native 之 Switch 和 ProgressBarAndroid 组件的讲解
- Android 实现视屏播放器、边播边缓存功能、外加铲屎(IJKPlayer)
- 基础篇章:关于 React Native 之 ToolbarAndroid 组件的讲解
- Android M 权限最佳实践
- Android自定义ViewGroup神器-ViewDragHelper
- Android 中常见的内存泄漏
- Android 高级自定义Toast及源码解析
- 环境配置:React Native 开发环境配置 For Android
- 美团多渠道打包方案详解,速度快到白驹过隙
- 下一代Android渠道打包工具
- 01 整合IDEA+Maven+SSM框架的高并发的商品秒杀项目之业务分析与DAO层
- 通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
- 基于python实现模拟数据结构模型
- keras的siamese(孪生网络)实现案例
- 浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
- Python数据可视化图实现过程详解
- Python matplotlib 绘制双Y轴曲线图的示例代码
- keras 读取多标签图像数据方式
- python新手学习可变和不可变对象
- COS Android SDK DEMO搭建实践
- 利用COS多版本避免文件误删除
- kube-prometheus添加target
- 深入浅析python 中的self和cls的区别
- php中如何执行linux命令详解
- Linux下 php7安装redis的方法
- 基于Keras中Conv1D和Conv2D的区别说明