首頁>技術>

準備環境

直接拉取使用現成的映象吧:

docker pull virhuiai/maven_quick:version-aliyun
執行容器

進入一個目錄:

cd /Volumes/RamDisk

執行maven並將當前目錄對映到容器的工作目錄,後面從容器裡複製檔案到宿主就可以不用docker cp命令了:

docker run -it --rm --name maven_quick_tmp_run \-v "$HOME/.m2/repository":/root/.m2/repository \-v "$PWD":/usr/src/mymaven \-w /usr/src/mymaven \virhuiai/maven_quick:version-aliyun  \/bin/sh

現在找下安裝目錄,知道maven有個settings.xml檔案,就透過它來找到目錄吧:

cd /usr/share/maven/

下面看一下該目錄的結構和內容。

maven安裝目錄的結構和內容
# ls -altotal 60drwxr-xr-x 1 root root  4096 Jan 13 07:04 .drwxr-xr-x 1 root root  4096 Feb  1 06:55 ..-rw-r--r-- 1 root root 17504 Nov  7  2019 LICENSE-rw-r--r-- 1 root root  5141 Nov  7  2019 NOTICE-rw-r--r-- 1 root root  2612 Nov  7  2019 README.txtdrwxr-xr-x 2 root root  4096 Jan 13 07:04 bindrwxr-xr-x 2 root root  4096 Jan 13 07:04 bootdrwxr-xr-x 1 root root  4096 Feb  1 06:55 confdrwxr-xr-x 4 root root  4096 Jan 13 07:04 libdrwxr-xr-x 1 root root  4096 Jan 13 07:04 ref

有四個目錄

drwxr-xr-x 2 root root  4096 Jan 13 07:04 bindrwxr-xr-x 2 root root  4096 Jan 13 07:04 bootdrwxr-xr-x 1 root root  4096 Feb  1 06:55 confdrwxr-xr-x 4 root root  4096 Jan 13 07:04 libdrwxr-xr-x 1 root root  4096 Jan 13 07:04 ref
bin目錄
# tree -N ./bin./bin├── m2.conf├── mvn├── mvn.cmd├── mvnDebug├── mvnDebug.cmd└── mvnyjp

該目錄包含了mvn執行的指令碼,帶cmd的是基於Windows平臺的bat指令碼,不帶的是基於UNIX平臺的Shell指令碼。這些指令碼用來配置Java命令,準備classpath和相關的Java系統屬性,然後執行Java命令。帶Debug的檔案,只是多了條MAVEN_DEBUG_OPTS配置:

# cat mvnDebug

其作用就是在執行Maven時開啟debug,以便除錯Maven本身。

m2.conf是classworlds的配置檔案:

boot目錄
# tree -N bootboot├── plexus-classworlds-2.6.0.jar└── plexus-classworlds.license0 directories, 2 files

plexus-classworlds是一個類載入器框架,相對於預設的java類載入器,它提供了更豐富的語法以方便配置,Maven使用該框架載入自己的類庫。

lib目錄

lib目錄包含了所有Maven執行時需要的Java類庫。其中,maven-model-builder-3.6.3.jar中有超級POM, 我們可以解壓出來看看:

cp /usr/share/maven/lib/maven-model-builder-3.6.3.jar /usr/src/mymaven

在宿主機解壓後,可以在maven-model-builder-3.6.3/org/apache/maven/model目錄中找到pom.xml,即超級POM。

15
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 2021程式語言排行榜出爐,你還有機會