Maven实战. 2.3安装目录分析

2.3安装目录分析

前面讲述了如何在各种操作系统中安装和升级Maven。现在来仔细分析一下Maven的安装文件。

2.3.1M2_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平台的shell脚本,后者是Windows平台的bat脚本。那么mvn和mvnDebug有什么区别和关系呢?打开文件我们就可以看到,两者基本是一样的,只是mvnDebug多了一条MAVEN_DEBUG_OPTS配置,其作用就是在运行Maven时开启debug,以便调试Maven本身。此外,该目录还包含m2.conf文件,这是classworlds的配置文件,后面会介绍classworlds。

 boot: 该目录只包含一个文件,以maven 3.0为例,该文件为plexusclassworlds2.2.3.jar。plexusclassworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更丰富的语法以方便配置,Maven使用该框架加载自己的类库。更多关于classworlds的信息请参考http://classworlds.codehaus.org/。对于一般的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等。对于Maven 2来说,该目录只包含一个如maven2.2.1uber.jar的文件,原本各为独立JAR文件的Maven模块和第三方类库都被拆解后重新合并到了这个JAR文件中。可以说,lib目录就是真正的Maven。关于该文件,还有一点值得一提的是,用户可以在这个目录中找到Maven内置的超级POM,这一点在8.5节详细解释。其他: LICENSE.txt记录了Maven使用的软件许可证Apache License Version 2.0; NOTICE.txt记录了Maven包含的第三方软件;而README.txt则包含了Maven的简要介绍,包括安装需求及如何安装的简要指令等。

2.3.2~/.m2

在讲述该小节之前,我们先运行一条简单的命令:mvn help:system。该命令会打印出所有的Java系统属性和环境变量,这些信息对我们日常的编程工作很有帮助。这里暂不解释help:system涉及的语法,运行这条命令的目的是让Maven执行一个真正的任务。我们可以从命令行输出看到Maven会下载mavenhelpplugin,包括pom文件和jar文件。这些文件都被下载到了Maven本地仓库中。

现在打开用户目录,比如当前的用户目录是C:\Users\Juven Xu\,你可以在Vista和Windows7中找到类似的用户目录。如果是更早版本的Windows,该目录应该类似于C:\Document
and Settings\Juven Xu\。在基于UNIX的系统上,直接输入cd 回车,就可以转到用户目录。为了方便,本书统一使用符号 ~ 指代用户目录。

在用户目录下可以发现.m2文件夹。默认情况下,该文件夹下放置了Maven本地仓库.m2/repository。所有的Maven构件都被存储到该仓库中,以方便重用。可以到~/.m2/repository/org/apache/maven/plugins/mavenhelpplugins/目录下找到刚才下载的mavenhelpplugin的pom文件和jar文件。Maven根据一套规则来确定任何一个构件在仓库中的位置,这一点在第6章将会详细阐述。由于Maven仓库是通过简单文件系统透明地展示给Maven用户的,有些时候可以绕过Maven直接查看或修改仓库文件,在遇到疑难问题时,这往往十分有用。

默认情况下,~/.m2目录下除了repository仓库之外就没有其他目录和文件了,不过大多数Maven用户需要复制M2_HOME/conf/settings.xml文件到~/.m2/settings.xml。这是一条最佳实践,我们将在2.7小节详细解释。

时间: 2024-09-26 20:13:56

Maven实战. 2.3安装目录分析的相关文章

Maven实战. 2.5安装m2eclipse

2.5安装m2eclipse Eclipse是一款非常优秀的IDE.除了基本的语法标亮.代码补齐.XML编辑等基本功能外,最新版的Eclipse还能很好地支持重构,并且集成了JUnit.CVS.Mylyn等各种流行工具.可惜Eclipse默认没有集成对Maven的支持.幸运的是,由Maven之父Jason Van Zyl创立的Sonatype公司建立了m2eclipse项目.这是Eclipse下的一款十分强大的Maven插件,可以访问http://m2eclipse.sonatype.org/了

Maven实战. 2.7Maven安装最佳实践

2.7Maven安装最佳实践本节介绍一些在安装Maven过程中不是必须的,但十分有用的实践.2.7.1设置MAVEN_OPTS环境变量前面介绍Maven安装目录时我们了解到,运行mvn命令实际上是执行了Java命令,既然是运行Java,那么运行Java命令可用的参数当然也应该在运行mvn命令时可用.这个时候,MAVEN_OPTS环境变量就能派上用场.通常需要设置MAVEN_OPTS的值为-Xms128m -Xmx512m,因为Java默认的最大可用内存往往不能够满足Maven运行的需要,比如在项

Maven实战. 2.6安装NetBeans Maven插件

2.6安装NetBeans Maven插件 本小节会先介绍如何在NetBeans上安装Maven插件,后面的章节中还会介绍NetBeans中具体的Maven操作. 如果正在使用NetBeans 6.7及以上版本,那么Maven插件已经预装了.你可以检查Maven插件安装,单击菜单栏中的工具,接着选择插件,在弹出的插件对话框中选择已安装标签,应该能够看到Maven插件,如图2-11所示.图2-11已安装的NetBeans Maven插件 如果在使用NetBeans 6.7之前的版本,或者由于某些原

Maven实战

Maven 实战 许晓斌  著 本书由国内社区公认的Maven专家Juven Xu亲自执笔,内容的权威性毋庸置疑. 本书是国内第一本公开出版的Maven专著.它内容新颖,基于最新发布的Maven 30,不仅详尽讲解了Maven 30的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2x版本进行了对比,以便于正在使用Maven 2x版本的用户能更好地理解.本书内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装.配置和基本使用方法,以便于初学者参考:详细

Maven实战. 导读

Maven 实战 许晓斌  著 本书由国内社区公认的Maven专家Juven Xu亲自执笔,内容的权威性毋庸置疑. 本书是国内第一本公开出版的Maven专著.它内容新颖,基于最新发布的Maven 30,不仅详尽讲解了Maven 30的所有新功能和新特性,而且还将这些新功能和新特性与Maven 2x版本进行了对比,以便于正在使用Maven 2x版本的用户能更好地理解.本书内容全面,以从专家的角度阐释Maven的价值开篇,全面介绍了Maven的安装.配置和基本使用方法,以便于初学者参考:详细

[Maven实战](1)安装与配置

1. Maven简介 Maven是一个跨平台的项目管理工具.作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理. 1.1 依赖管理 Maven提供了中央仓库,能帮助我们自动下载构件.在这个开源的年代里,几乎任何Java应用都会借用一些第三方的开源类库,这些开源类库都可通过依赖的方式引入到项目中来.随着依赖的增多,版本不一致,版本冲突,依赖臃肿等问题都会接踵而至.Maven提供了一个优秀的解决方案,它通过一个坐标系统准确的定位每一个构件(a

《maven实战》学习笔记2——maven安装(windows和eclipse插件)

前言 由于我的工作中开发环境就是windows,IDE是eclipse,因此安装也只涉及和记录这两部分,在看书和动手的过程也就直接跳过其他部分. 笔记 windows中maven的安装 安装条件 maven依赖于java,因此安装和使用maven,要先确保已安装了jdk并配置好jdk的环境变量. 检查jdk是否安装并配好环境变量,可以再windows的cmd窗口执行java -version查看,如果如下所示,则证明jdk安装和配置正确. C:\Users\tzx>java -version j

Maven实战. 2.2在基于UNIX的系统上安装Maven

2.2在基于UNIX的系统上安装Maven Maven是跨平台的,它可以在任何一种主流的操作系统上运行.本节将介绍如何在基于UNIX的系统(包括Linux.Mac OS以及FreeBSD等)上安装Maven. 2.2.1下载和安装 首先,与在Windows上安装Maven一样,需要检查JAVA_HOME环境变量以及Java命令,这里对细节不再赘述.命令如下:juven@juvenubuntu:~$ echo $JAVA_HOME juven@juvenubuntu:~$ javaversi

iredmail下安装脚本分析(一)---get_all.sh 文件所在目录为PKGS_linux shell

iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的. 经过上面的一系列分析后,进入到获取安装包的步骤,作者在此处单独写了一个脚本,get_all.sh,我们继续分析这个脚本 _ROOTDIR="$(pwd)" CONF_DIR="${_ROOTDIR}/../conf" . ${CONF_DIR}/global . ${CONF_DIR}/core . ${CONF_DIR}/iredadmin 程序的意思是利用p