maven学习(一)——maven的安装目录结构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012379844/article/details/82348861

1、maven的安装目录

        如果忘记了maven的安装目录,可以使用“mvn -version”命令来查看,其中包括maven的版本信息、安装目录等各种信息。

localhost:~ guolujie$ mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /Users/guolujie/tool/maven/apache-maven-3.5.4
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.13.4", arch: "x86_64", family: "mac"

2、maven的目录结构

        根据以上文本所显示的maven的安装路径,我们进入到该路径下,可以看到如下的结构:

localhost:apache-maven-3.5.4 guolujie$ ls -l
total 64
-rw-r--r--@  1 guolujie  staff  20965  8 11 19:23 LICENSE
-rw-r--r--@  1 guolujie  staff    182  8 11 19:23 NOTICE
-rw-r--r--@  1 guolujie  staff   2530  8 11 19:23 README.txt
drwxr-xr-x@  8 guolujie  staff    256  8 11 19:23 bin
drwxr-xr-x@  3 guolujie  staff     96  8 11 19:23 boot
drwxr-xr-x@  6 guolujie  staff    192  8 21 11:12 conf
drwxr-xr-x@ 83 guolujie  staff   2656  8 11 19:23 lib

        如上结构中,包含bin、boot、conf、lib这四个文件夹,下面分别介绍各个文件夹的作用是什么。

        * bin目录

localhost:bin guolujie$ ls -l
total 64
-rw-r--r--@ 1 guolujie  staff   228  8 11 19:23 m2.conf
-rwxr-xr-x@ 1 guolujie  staff  5741  8 11 19:23 mvn
-rw-r--r--@ 1 guolujie  staff  6343  8 11 19:23 mvn.cmd
-rwxr-xr-x@ 1 guolujie  staff  1485  8 11 19:23 mvnDebug
-rw-r--r--@ 1 guolujie  staff  1668  8 11 19:23 mvnDebug.cmd
-rwxr-xr-x@ 1 guolujie  staff  1532  8 11 19:23 mvnyjp

        该文件夹的作用和Java中的bin作用相似,包含了该软件的运行脚本,在命令行中每输入一条mvn命令,实际上都是在调用mvn脚本。mvnDebug其作用是在运行Maven时开启debug,以便于对maven本身进行调试。m2.conf文件是classworlds的配置文件,boot目录中有一个plexus-classworlds-2.5.2.jar包,该包是类似于Java的一个类加载器的框架,用于加载maven自身的类,而classworlds则包含了对该包的配置,具体内容如下所示:

localhost:bin guolujie$ cat m2.conf 
main is org.apache.maven.cli.MavenCli from plexus.core

set maven.conf default ${maven.home}/conf

[plexus.core]
load       ${maven.conf}/logging
optionally ${maven.home}/lib/ext/*.jar
load       ${maven.home}/lib/*.jar

        * boot目录:

        boot目录中只包含上面提到的 plexus-classworlds-2.5.2.jar包,该包是一个类加载器的框架,用来加载maven本身的类。

        * conf目录:

localhost:conf guolujie$ ls -l
total 40
drwxr-xr-x@ 3 guolujie  staff     96  8 11 19:23 logging
-rw-r--r--@ 1 guolujie  staff   1867  8 21 11:34 settings.xml
-rw-r--r--@ 1 guolujie  staff  10211  8 11 22:50 settings.xml.back
-rw-r--r--@ 1 guolujie  staff   3645  8 11 19:23 toolchains.xml

         conf目录中包含了一个非常重要的settings.xml配置文件,以后的很多配置都会在该文件中进行配置。该文件可以直接修改,直接修改该文件就是在全局上定制该文件。

        * lib目录:

        该目录中包含了maven运行时所需要的类.

localhost:lib guolujie$ ls
aopalliance-1.0.jar                      maven-embedder-3.5.4.jar                 maven-settings.license
cdi-api-1.0.jar                          maven-embedder.license                   maven-shared-utils-3.2.1.jar
cdi-api.license                          maven-model-3.5.4.jar                    maven-shared-utils.license
commons-cli-1.4.jar                      maven-model-builder-3.5.4.jar            maven-slf4j-provider-3.5.4.jar
commons-cli.license                      maven-model-builder.license              maven-slf4j-provider.license
commons-io-2.5.jar                       maven-model.license                      org.eclipse.sisu.inject-0.3.3.jar
commons-io.license                       maven-plugin-api-3.5.4.jar               org.eclipse.sisu.inject.license
commons-lang3-3.5.jar                    maven-plugin-api.license                 org.eclipse.sisu.plexus-0.3.3.jar
commons-lang3.license                    maven-repository-metadata-3.5.4.jar      org.eclipse.sisu.plexus.license
ext                                      maven-repository-metadata.license        plexus-cipher-1.7.jar
guava-20.0.jar                           maven-resolver-api-1.1.1.jar             plexus-cipher.license
guice-4.2.0-no_aop.jar                   maven-resolver-api.license               plexus-component-annotations-1.7.1.jar
jansi-1.17.1.jar                         maven-resolver-connector-basic-1.1.1.jar plexus-component-annotations.license
jansi-native                             maven-resolver-connector-basic.license   plexus-interpolation-1.24.jar
javax.inject-1.jar                       maven-resolver-impl-1.1.1.jar            plexus-interpolation.license
jcl-over-slf4j-1.7.25.jar                maven-resolver-impl.license              plexus-sec-dispatcher-1.4.jar
jcl-over-slf4j.license                   maven-resolver-provider-3.5.4.jar        plexus-sec-dispatcher.license
jsr250-api-1.0.jar                       maven-resolver-provider.license          plexus-utils-3.1.0.jar
jsr250-api.license                       maven-resolver-spi-1.1.1.jar             plexus-utils.license
maven-artifact-3.5.4.jar                 maven-resolver-spi.license               slf4j-api-1.7.25.jar
maven-artifact.license                   maven-resolver-transport-wagon-1.1.1.jar slf4j-api.license
maven-builder-support-3.5.4.jar          maven-resolver-transport-wagon.license   wagon-file-3.1.0.jar
maven-builder-support.license            maven-resolver-util-1.1.1.jar            wagon-file.license
maven-compat-3.5.4.jar                   maven-resolver-util.license              wagon-http-3.1.0-shaded.jar
maven-compat.license                     maven-settings-3.5.4.jar                 wagon-http.license
maven-core-3.5.4.jar                     maven-settings-builder-3.5.4.jar         wagon-provider-api-3.1.0.jar
maven-core.license                       maven-settings-builder.license           wagon-provider-api.license

猜你喜欢

转载自blog.csdn.net/u012379844/article/details/82348861