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