Maven软件项目管理工具
1.Maven介绍
1.1 什么是Maven
学习Maven之前,我们需要了解什么是Maven,Maven的作用,Maven在我们软件开发中的地位。
我们进入Maven官网,Maven全称是Apache Maven,下面摘要官网描述:
- Maven是一个软件项目管理和构建工具。
- Maven基于项目对象模型(POM),Maven允许我们从Maven的官方仓库中下载我们需要的依赖工具(jar包),报告与文档。
1.2 Maven由来
Maven是意第绪语,意思是知识的积累,它最初是为简化Jakarta Turbine项目中的构建过程而进行的。在我们创建Maven项目是,Maven允许我们导入Maven仓库中的依赖。
1.3 Maven的目标
Maven允许开发人员在最短的时间内组建项目的完整状态。Maven致力于实现以下目标:
- 简化构建过程。Maven仓库给开发人员提供了大量的依赖。Maven不会消除对底层机制的了解,Maven使得开发人员免受细节的干扰,专心与业务的实现。
- 提供统一的构建环境。Maven使用项目对象模型(POM)和一组插件来构建项目。我们只需要熟悉一个项目的创建,就知道所有的Maven项目是如何构建的。减少了学习成本。
- 提供优质的项目信息。
- 鼓励更好的开发实践。
1.4 Maven功能:(以下来自于官网)
- 遵循最佳实践的简单项目设置-数秒内即可启动新项目或模块
- 所有项目的用法一致-意味着新开发者无需花更多的时间来参与项目
- 出色的依赖项管理,包括自动更新,依赖项关闭(也称为传递依赖项)
- 能够轻松同时处理多个项目
- 开箱即用的庞大且不断增长的库和元数据存储库,以及与大型开放源代码项目的安排,可实时获取其最新版本
- 可扩展,具有轻松[用Java或脚本语言编写插件的能力
- 几乎无需额外配置即可立即访问新功能
- 用于在Maven之外进行依赖项管理和部署的Ant任务
- 基于模型的构建:Maven能够将任何数量的项目构建为预定义的输出类型,例如JAR,WAR或基于有关该项目的元数据的分发,而在大多数情况下无需执行任何脚本。
- 项目信息的一致站点:使用与构建过程相同的元数据,Maven能够生成一个网站或PDF,其中包括您希望添加的任何文档,并将有关项目开发状态的标准报告添加到该标准报告中。该信息的示例可以在本网站左侧导航的底部的“项目信息”和“项目报告”子菜单下看到。
- 发布管理和发行发布:无需太多额外配置,Maven将与您的源代码控制系统(例如Subversion或Git)集成,并基于特定标签管理项目的发布。它还可以将其发布到分发位置,以供其他项目使用。Maven能够发布单个输出,例如JAR,包含其他依赖项和文档的存档或作为源分发。
- 依赖关系管理:Maven鼓励使用JAR和其他依赖关系的中央存储库。Maven带有一种机制,您的项目的客户可以使用该机制从中央JAR存储库中下载构建项目所需的任何JAR,就像Perl的CPAN一样。这使Maven的用户可以在项目之间重用JAR,并鼓励项目之间进行通信,以确保解决向后兼容性问题。
2.Maven下载和安装
2.1 Maven的下载
话不多说,我们进入Maven的官网

选择我们需要下载的版本与类型:

我们这里就下载版本,我下载的版本是apache-maven-3.6.3,我们下载解压。

记住自己Maven的下载路径。我的安装路径是:D:\environnment\maven\apache-maven-3.6.3
2.2 Maven环境变量的配置
-
进入配置环境界面,点击新建环境遍历

-
我们创建两个环境变量值:
配置如下的环境变量:
- Maven所在路径

-
Maven所在目录下的bin目录,在Path下进行添加

-
测试Maven是否配置成功

2.3 修改Maven镜像
因为国内原因,我们如果需要去maven官方仓库下载依赖,则网速会很慢,所以我们需要自己配置Maven仓库镜像。
-
我们进入刚才下载的maven安装路径,进入config目录下,找到settings.xml配置文件,使用记事本或者notepad++等打开,这里我使用notepa++打开。

找到mirrors标签后,添加上我们的自己的镜像
国内常用的镜像:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>central</id> <name>Maven Repository Switchboard</name> <url>http://repo1.maven.org/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror> <mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url> </mirror> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror> <!-- 中央仓库在中国的镜像 --> <mirror> <id>maven.net.cn</id> <name>oneof the central mirrors in china</name> <url>http://maven.net.cn/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> -
配置本地仓库
-
我们需要配置本地仓库,以便我们之后方便管理与使用。
我们在maven目录下新建文件夹:maven-repo

-
新建好文件夹之后,还是在settings.xml配置文件中进行添加,我们添加标签:在标签中填入我们刚才新建文件的全路径:
我这里是:D:\environnment\maven\apache-maven-3.6.3\maven-repo
<!--配置Mmaven本地仓库--> <localRepository>D:\environnment\maven\apache-maven-3.6.3\maven-repo</localRepository>配置完毕后,保存退出!!!
-
3.在IDEA中创建我们的Maven项目
3.1 创建Maven普通项目

填写项目基本信息:

3.2 修改我们的Maven仓库
进入新建的Maven项目后,进入settings---->build---->maven,勾选确定应用后退出。

3.3 测试环境是否配置成功
- 我们测试一下环境仓库环境是否设置成功,我们在pom.xml文件中导入mysql数据库依赖,我们去Maven仓库官网拿到依赖。

-
获取mysql-jdbc依赖


-
导入依赖
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.21</version> </dependency>
-
查看是否导入成功
我们进入我们的本地仓库,查看mysql数据库驱动是否导入成功!!!

3.5 修改Maven仓库设置,使之后创建的项目都使用该仓库
- 可能有的用户在之后新创建Maven项目后仓库又会变为idea默认的仓库,我们需要修改仓库设置,使得之后创建的项目都使用我们的本地仓库。

-
修改为我们自己的仓库名称,最后不要忘了保存退出!!!

Maven‘的设置就全部结束了,关于Maven的使用我之后会专门出一期文章!!!
4.Maven的其他问题
4.1 资源文件无法导出的问题
我们的资源文件位于src目录下时,在maven项目中可能会出现资源文件无法导出的问题,我们需要在maven配置文件pom.xml中导入以下设置:
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
4.2 资源文件无法导入问题
- 在进行项目构建时,可能会出现依赖无法导入问题,我们需要检查是否仓库找不到该依赖,我们需要添加仓库或者换镜像。
浙公网安备 33010602011771号