maven3实战之安装目录分析
2013-01-24 15:48
239 查看
1.M2_HOME
前面讲到设置M2_HOME环境变量指向maven的安装目录,本书之后所有使用M2_HOME的地方都指代了该安装目录。下面看一下该目录的结构和内容:
bin
boot
conf
lib
LICENSE.txt
NOTICE.txt
README.txt
bin目录:
该目录包含了mvn运行的脚本,这些脚本用来配置java命令,准备好classpath和相关的java系统属性,然后执行java命令。其中mvn是基于UNIX平台的shell脚本,mvn.bat是基于windows平台的bat脚本。在命令行输入任何一条mvn命令时,实际上就是在调用这些脚本。该目录还包含了mvnDebug和mvnDebug.bat两个文件,同样,前者是UNIX平台的脚本,后者是windows平台的脚本。那么mvn和mvnDebug有什么区别和关系呢?打开文件我们就可以看到,两者基本是一样的,只是mvnDebug多了一条MAVEN_DEBUG_OPTS配置,其作用就是在运行Maven时开启debug,以便调试Maven本身。此外,该目录还包含m2.conf文件,这是classworlds的配置文件,后面会介绍classworlds。
boot目录:
该目录只包含一个文件,以maven3为例,该文件为plexus-classworlds-xxx.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,maven使用该框架加载自己的类库。
conf目录:
该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制maven的行为。一般情况下,我们更偏向于复制该文件至~/.m2/目录下(~表示用户目录),然后修改该文件,在用户范围定制maven的行为。后面将会多次提到settings.xml,并分析其中的各个元素。
lib目录:
该目录包含了所有maven运行时需要的java类库,maven本身是分模块开发的,因此用户能看到诸如maven-core-3.0.jar,maven-model-3.0.jar之类的文件。此外,这里还包含一些maven用到的第三方依赖,如common-cli-1.2.jar,google-collection-1.0.jar等。对于maven2来说,该目录只包含一个如maven-2.2.1-uber.jar的文件,原本各为独立jar文件的maven模块和第三方类库都被拆解后重新合并到了这个jar文件中。可以说,lib目录就是真正的maven。
---
2.~/.m2
在用户目录下可以发现.m2文件夹。默认情况下,该文件夹下放置了maven本地仓库.m2/repository。所有的maven构件都被存储到该仓库中,以方便重用。默认情况下,~/.m2目录下除了repository仓库之外就没有其他目录和文件了,不过大多数maven用户需要复制M2_HOME/conf/settings.xml文件到~/.m2/settings.xml,以便定制。
前面讲到设置M2_HOME环境变量指向maven的安装目录,本书之后所有使用M2_HOME的地方都指代了该安装目录。下面看一下该目录的结构和内容:
bin
boot
conf
lib
LICENSE.txt
NOTICE.txt
README.txt
bin目录:
该目录包含了mvn运行的脚本,这些脚本用来配置java命令,准备好classpath和相关的java系统属性,然后执行java命令。其中mvn是基于UNIX平台的shell脚本,mvn.bat是基于windows平台的bat脚本。在命令行输入任何一条mvn命令时,实际上就是在调用这些脚本。该目录还包含了mvnDebug和mvnDebug.bat两个文件,同样,前者是UNIX平台的脚本,后者是windows平台的脚本。那么mvn和mvnDebug有什么区别和关系呢?打开文件我们就可以看到,两者基本是一样的,只是mvnDebug多了一条MAVEN_DEBUG_OPTS配置,其作用就是在运行Maven时开启debug,以便调试Maven本身。此外,该目录还包含m2.conf文件,这是classworlds的配置文件,后面会介绍classworlds。
boot目录:
该目录只包含一个文件,以maven3为例,该文件为plexus-classworlds-xxx.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,maven使用该框架加载自己的类库。
conf目录:
该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制maven的行为。一般情况下,我们更偏向于复制该文件至~/.m2/目录下(~表示用户目录),然后修改该文件,在用户范围定制maven的行为。后面将会多次提到settings.xml,并分析其中的各个元素。
lib目录:
该目录包含了所有maven运行时需要的java类库,maven本身是分模块开发的,因此用户能看到诸如maven-core-3.0.jar,maven-model-3.0.jar之类的文件。此外,这里还包含一些maven用到的第三方依赖,如common-cli-1.2.jar,google-collection-1.0.jar等。对于maven2来说,该目录只包含一个如maven-2.2.1-uber.jar的文件,原本各为独立jar文件的maven模块和第三方类库都被拆解后重新合并到了这个jar文件中。可以说,lib目录就是真正的maven。
---
2.~/.m2
在用户目录下可以发现.m2文件夹。默认情况下,该文件夹下放置了maven本地仓库.m2/repository。所有的maven构件都被存储到该仓库中,以方便重用。默认情况下,~/.m2目录下除了repository仓库之外就没有其他目录和文件了,不过大多数maven用户需要复制M2_HOME/conf/settings.xml文件到~/.m2/settings.xml,以便定制。
相关文章推荐
- maven3实战之安装目录分析
- 【Android学习笔记】三、项目的目录结构与安装及启动过程分析
- Python数据分析与挖掘实战(开发流程及常用库安装)
- 恶意代码分析实战 安装INetSim在CentOS 7上
- Maven学习笔记(三)安装目录分析
- maven安装目录分析
- ELK日志分析系统实战(一)安装和部署
- iredmail下安装脚本分析(一)---get_all.sh 文件所在目录为PKGS
- 学习笔记4-项目的目录结构与安装及启动过程分析
- Thinkphp实战(安装,目录讲解)
- 深入理解openwrt架构(一)--安装准备和目录分析
- openwrt安装准备和目录分析
- 学习笔记4-项目的目录结构与安装及启动过程分析
- 扩增子分析流程1. QIIME虚拟机安装配置及挂载外部目录
- maven安装目录分析
- Sonar代码分析实战(2)——1.1.1 Sonar安装环境要求
- JDK安装目录分析-两个jre和三个lib
- Sonar代码分析实战(2)——1.1.1 Sonar安装环境要求
- 活动目录实战之一 windows 2008 r2 安装域中第一台域控制器
- (五)8天快速掌握Android视频教程_项目的目录结构与安装及启动过程分析