Maven
基本概念
Maven 是基于项目对象模型(Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven 主要有 2 个功能:「项目构建」和「依赖管理」。
🖋 说明
由于无论是 Eclipse 还是 IDEA 都内置了 maven ,所以并没有什么必要去「单独下载 maven ,并在命令行中使用」。通常我们都是在开发工具中基于图形化界面进行操作。当然,图形化操作的背后本质上还是执行了对应了 maven 命令。所以,你还是有必要去了解一下 maven 命令行操作。我会在本系列最后章节输出相关的命令和使用。
提前做的配置工作
🖋 说明
以下内容对未来的操作会有重要影响,因此在学习、使用 maven 之前,我们先执行一下这些配置操作。
在使用 Maven 的过程中,Maven 会通过互联网从一个名为"中央仓库"的地方下载所需的各种包,但是由于这个下载地址是在国外,因此下载速度很慢且不稳定。阿里(还有其他的公司和机构)对这个中央仓库提供了"镜像服务",并保持持续的更新。
在正式使用 maven 之前,我们提前配置好阿里的 maven 仓库,以避免白白浪费时间。
第 1 步:在 C:\Users\<用户名> 目录下创建一个名为 .m2 的文件夹
这里有几个注意事项:
-
这个目录是 Windows 操作系统的用户家目录,可以通过 %homepath% 快速进入到这个目录;
-
如果这个文件夹存在,那么就直接利用它,不需要再创建了;
-
由于 windows 图形化界面中认为 .m2 这个文件名"有问题",所以这里直接使用命令行命令创建它:md .m2 。
第 2 步:在 .m2 中创建 settings.xml 配置文件
将下面的 settings.xml 配置文件复制到 .m2 中目录中,即可。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- https://maven.aliyun.com/mvn/guide -->
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk> <!-- 当 jdk 环境版本为 1.8 时,此 profile 被激活 -->
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
<!-- 如果有需要,这个全局配置文件中还可以进行其它方面的配置。不过,我们暂时不涉及。-->
</settings>
这里有几个注意事项:
-
在这个配置文件中,我们主要配置了"中央仓库"的网址。从默认的、外网仓库网址改成了阿里提供的国内镜像服务器网址(从而提高未来使用中下载包的速度)。
-
如果 .m2 中原本就有 settings.xml 配置文件,而那么稳妥起见,你就需要将我们的模板文件中的内容"抠"出来,复制进去(而不是贸然的直接复制覆盖源文件,以免出现原配置丢失的情况)。
第 3 步:在 .m2 中创建 cleanLastUpdated.bat 脚本文件
这个脚本文件是为了解决 .lastUpdated 文件问题。
将下面的 cleanLastUpdated.bat 脚本文件复制到 .m2 中目录中,即可。
以下内容是 Windows 下的“清除脚本”的内容。
REPOSITORY_PATH
变量的值根据具体情况的不同可以有调整。
@echo off
set REPOSITORY_PATH=C:%HOMEPATH%\.m2\repository
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
echo %%i
del /s /q "%%i"
)
rem 搜索完毕
pause
这里有几个注意事项:
-
这个脚本文件是用来清除 %homepath%/.m2/repository 中的 .lastUpdated 文件的。使用时双击它即可。
-
如果你改动过配置,使得你的本地仓库并不在默认的 %homepath%/.m2/repository 中,而你还想利用这个脚本文件,那么你就需要打开它、编辑它,改成符合你的需要的情况。
其它
在未来,settings.xml 的"旁边"会有一个名为 “repository” 的文件夹,你从或阿里的镜像服务器(即,中央仓库)下载的各种包,就会被放在这里面。这个 “repository” 文件夹,也被称为 maven 的 “本地仓库” 。