maven目录结构分析

痛定思痛。 2022-12-17 01:30 337阅读 0赞

在这里插入图片描述

1,bin

在这里插入图片描述

该目录包含了 mvn 运行的脚本,这些脚本用来配置 Java 命令,准备好 classpath 和相关的 Java 系统属性,然后执行 Java 命令。

其中 mvn 是基于 UNIX 平台的 shell 脚本,mvn.bat 是基于 Windows 平台的 bat 脚本。在命令行输入任何一条 mvn 命令时,实际上就是在调用这些脚本。

该目录还包含了 mvnDebug 和 mvnDebug.bat 两个文件,同样,前者是 UNIX 平台的 shell 脚本,后者是 Windows 平台的 bat 脚本。那么 mvn 和 mvnDebug 有什么区别和关系呢?

打开文件我们就可以看到,两者基本是一样的,只是 mvnDebug 多了一条 MAVEN_DEBUG_OPTS 配置,其作用就是在运行 Maven 时开启 debug,以便调试 Maven 本身。

此外,该目录还包含 m2.conf 文件,这是 classworlds 的配置文件,后面会介绍 classworlds。

2,boot

在这里插入图片描述

该目录只包含一个文件,以 maven 3.3.9 为例,该文件为 plexus-classworlds-2.5.2.jar。

plexus-classworlds 是一个类加载器框架,相对于默认的 java 类加载器,它提供了更丰富的语法以方便配置,Maven 使用该框架加载自己的类库。

3,conf

在这里插入图片描述

该目录包含了一个非常重要的文件 settings.xml。直接修改该文件,就能在机器上全局地定制 Maven 的行为。

一般情况下,我们更偏向于复制该文件至 ~/.m2/ 目录下(~表示用户目录),然后修改该文件,在用户范围定制 Maven 的行为。后面将会多次提到 settings.xml,并逐步分析其中的各个元素。

4,lib

在这里插入图片描述

该目录包含了所有 Maven 运行时需要的 Java 类库,Maven 本身是分模块开发的,因此用户能看到诸如 maven-core-3.0.jar、maven-model-3.0.jar 之类的文件。

此外,这里还包含一些 Maven 用到的第三方依赖,如 common-cli-1.2.jar、commons-lang-2.6.jar 等。

对于 Maven 2 来说,该目录只包含一个如 maven-2.2.1-uber.jar 的文件,原本各为独立 JAR 文件的 Maven 模块和第三方类库都被拆解后重新合并到了这个 JAR 文件中。可以说,lib 目录就是真正的 Maven。

关于该文件,还有一点值得一提的是,用户可以在这个目录中找到 Maven 内置的超级 POM,这一点教程后面会详细解释。

5,LICENSE

记录了 Maven 使用的软件许可证Apache License Version 2.0。

6,NOTICE

记录了 Maven 包含的第三方软件。

7,README.TXT

包含了 Maven 的简要介绍,包括安装需求及如何安装的简要指令等。

发表评论

表情:
评论列表 (有 0 条评论,337人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Maven 标准目录结构

    Maven 标准目录结构 好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录

    相关 maven 目录结构

    Maven 标准目录结构 好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录

    相关 Maven 标准目录结构

    Maven 标准目录结构 好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录