maven學習(一)——maven的安裝目錄結構
阿新 • • 發佈:2018-12-21
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
[email protected] 1 guolujie staff 20965 8 11 19:23 LICENSE
[email protected] 1 guolujie staff 182 8 11 19:23 NOTICE
[email protected] 1 guolujie staff 2530 8 11 19:23 README.txt
[email protected] 8 guolujie staff 256 8 11 19:23 bin
[email protected] 3 guolujie staff 96 8 11 19:23 boot
[email protected] 6 guolujie staff 192 8 21 11:12 conf
[email protected] 83 guolujie staff 2656 8 11 19:23 lib
如上結構中,包含bin、boot、conf、lib這四個資料夾,下面分別介紹各個資料夾的作用是什麼。
* bin目錄:
localhost:bin guolujie$ ls -l
total 64
[email protected] 1 guolujie staff 228 8 11 19:23 m2.conf
[email protected] 1 guolujie staff 5741 8 11 19:23 mvn
[email protected] 1 guolujie staff 6343 8 11 19:23 mvn.cmd
[email protected] 1 guolujie staff 1485 8 11 19:23 mvnDebug
[email protected] 1 guolujie staff 1668 8 11 19:23 mvnDebug.cmd
[email protected] 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
[email protected] 3 guolujie staff 96 8 11 19:23 logging
[email protected] 1 guolujie staff 1867 8 21 11:34 settings.xml
[email protected] 1 guolujie staff 10211 8 11 22:50 settings.xml.back
[email protected] 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