maven开发者笔记(Maven5分钟快速入门)
maven开发者笔记(Maven5分钟快速入门)解压之后的子目录简要说明:然后去Maven官网下载界面下载想要的版本,并解压到你想要的目录就行。以Windows 平台为例:java version "1.8.0_111"Java(TM) SE Runtime Environment (build 1.8.0_111-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14 mixed mode)
Maven作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具。
Maven不仅是构建工具,还是一个依赖管理工具和项目管理工具,它提供了中央仓库,能帮助自动下载构件。
一、maven 安装在安装Maven之前,首先确认已经安装了JDK。
Java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14 mixed mode)
然后去Maven官网下载界面下载想要的版本,并解压到你想要的目录就行。以Windows 平台为例:
解压之后的子目录简要说明:
- bin目录
该目录包含了mvn运行的脚本,这些脚本用来配置java命令,准备好classpath和相关的Java系统属性,然后执行Java命令。
- boot目录
该目录只包含一个文件,该文件为plexus-classworlds-2.5.2.jar。plexus-classworlds是一个类加载器框架,相对于默认的java类加载器,它提供了更加丰富的语法以方便配置,Maven使用该框架加载自己的类库。
- conf目录
该目录包含了一个非常重要的文件settings.xml。直接修改该文件,就能在机器上全局地定制Maven的行为。
- lib目录:
该目录包含了所有Maven运行时需要的Java类库,Maven本身是分模块开发的,因此用户能看到诸如maven-core-3.0.jar、maven-model-3.0.jar之类的文件,此外这里还包含一些Maven用到的第三方依赖如commons-cli-1.2.jar、commons-lang-2.6.jar等等。
最后设置一下环境变量,将Maven安装配置到操作系统环境中,主要就是配置M2_HOME、MAVEN_HOME和PATH三项,如图所示:
上述配置完成之后,打开cmd命令窗口,输入 mvn -v,如得到下面信息就说明配置成功了:
mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47 08:00)
Maven home: C:\maven-3.3.9
Java version: 1.8.0_111 vendor: Oracle Corporation
Java home: C:\Java\jdk1.8.0_111\jre
Default locale: zh_CN platform encoding: GBK
OS name: "windows 10" version: "10.0" arch: "amd64" family: "dos"
二、Maven常用命令和设置1. Maven常用命令
mvn clean:表示运行清理操作(会默认把target文件夹中的数据清理)。
mvn clean compile:表示先运行清理之后运行编译,会将代码编译到target文件夹中。
mvn clean test:运行清理和测试。
mvn clean package:运行清理和打包。
mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。
mvn clean deploy:运行清理和发布(发布到私服上面)。
2. conf/settings.xml 配置文件
在平时的开发中,我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,所以选择一个国内的镜像就很有必要,推荐国内的阿里云镜像。
阿里云镜像:配置很简单,修改conf文件夹下的settings.xml文件,添加如下镜像配置:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
上例子中,<mirrorOf>的值为central,表示该配置为中央库的镜像,任何对于中央仓库的请求都会转至该镜像,用户也可以用同样的方法配置其他仓库的镜像。
这里介绍下<mirrorOf>配置的各种选项:
- <mirrorOf>*<mirrorOf>: 匹配所有远程仓库。
- <mirrorOf>external:*<mirrorOf>: 匹配所有远程仓库,使用localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。
- <mirrorOf>repo1 repo2<mirrorOf>: 匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
- <mirrorOf>* !repo1<mirrorOf>: 匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。
需要注意的是,由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven仍将无法访问被镜像仓库,因而将无法下载构件。
3. Maven仓库
Maven仓库主要分为:本地仓库、中央仓库和私服。
(1)本地仓库
一般来说,在Maven项目目录下,没有诸如lib/这样用来存放依赖文件的目录。当Maven在执行编译或测试时,如果需要使用依赖文件,它总是基于坐标使用本地仓库的依赖文件。
默认情况下,不管在Window还是Linux下,每个用户在自己用户目录下都有一个路径名为.m2/repository/的仓库目录。
如果你想自定义本地仓库目录地址。你可以编辑文件~/.m2/settings.xml,设置localRepository元素的值为想要的仓库地址。
<settings>
<localRepository>D:\maven\repository\</localRepository>
</settings>
(2)远程仓库-中央仓库
由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能在执行Maven命令的时候下载到需要的构件。中央仓库就是这样一个默认的远程仓库,Maven的安装文件自带了中央仓库的配置。
中央仓库包含了这个世界上绝大多数流行的开源Java构件,以及源码、作者信息、许可证信息等,每个月这里都会接受全世界Java程序员大概1亿次的访问,它对全世界Java开发者的贡献由此可见一斑。
(3)远程仓库-私服
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。因此,一些无法从外部仓库下载到的构件也能从本地上传到私服上供大家使用。
三、Maven在IntelliJ IDEA中的设置这里介绍一下IDEA中如何配置引入我们上面安装好的Maven。