1. Maven的安装
软件下载
为了使用 Maven 管理工具,我们首先要到官网去下载它的安装软件。
https://maven.apache.org/


这里我使用的是:apache-maven-3.5.2-bin.zip
Maven的安装
Maven 下载后,将 Maven 解压到一个没有中文没有空格的路径下,比如 D:\ 下面。
解压后目录结构如下:

- bin:存放了 maven 的命令,比如我们前面用到的mvn tomcat:run
- boot:存放了一些 maven 本身的引导程序,如类加载器等
- conf:存放了 maven 的一些配置文件,如 setting.xml 文件
- lib:存放了 maven 本身运行所需的一些 jar 包
至此我们的 maven 软件就可以使用了,前提是你的电脑上之前已经安装并配置好了 JDK。
JDK准备和统一
这里我们使用JDK8版本
%JAVA_HOME%



Maven 及JDK配置
%MAVEN_HOME%


Maven软件版本测试
通过 mvn -v命令检查 maven 是否安装成功,看到 maven 的版本为 3.5.2 及 java 版本为 1.8 即为安装成功。

2. Maven的仓库
Maven仓库的分类
maven 的工程需要从仓库下载一些 jar 包,如下图所示,本地的项目 A、项目 B 等都会通过 maven软件从远程仓库(可以理解为互联网上的仓库)下载 jar 包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此 jar 包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

阿里云镜像配置
<mirrors>
<mirror>
<id>aliyun-maven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<mirror>
</mirrors>
1、本地仓库
用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包,优先从本地仓库查找,默认本地仓库位置在
${user.dir}/.m2/repository
${user.dir}表示windows 用户目录。

2、远程仓库
如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。
3、中央仓库
在 maven 软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包含了世界上大部分流行的开源项目构件。
Maven本地仓库配置

在 MAVE_HOME/conf/settings.xml 文件中配置本地仓库位置(maven 的安装目录下):

打开 settings.xml文件,配置如下:

<mirrors>
<id>aliyun-maven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirrors>
全局 setting与用户setting
maven 仓库地址、私服等配置信息需要在 setting.xml 文件中配置,分为全局配置和用户配置。
在 maven 安装目录下的有 conf/setting.xml 文件,此 setting.xml 文件用于 maven 的所有 project项目,它作为 maven 的全局配置。
如需要个性配置则需要在用户配置中设置,用户配置的 setting.xml 文件默认的位置在:
${user.dir}/.m2/settings.xml 目录中
${user.dir} 指windows 中的用户目录。
maven会先找用户配置,如果找到则以用户配置文件为准,否则使用全局配置文件。

3. Maven工程的认识
Maven工程的目录结构

作为一个 maven 工程,它的 src目录和 pom.xml 是必备的。
进入 src目录后,我们发现它里面的目录结构如下:

src/main/java :存放项目的.java 文件
src/main/resources :存放项目资源文件,如 spring, hibernate 配置文件
src/test/java :存放所有单元测试.java 文件,如 JUnit 测试类
src/test/resources:测试资源文件
target:项目输出位置,编译后的class 文件会输出到此目录
pom.xml:maven 项目核心配置文件
注意:如果是普通的 java 项目,那么就没有webapp 目录。
Maven 工程的运行


网友评论