Maven

什么是Maven?

Maven是一个项目管理工具,基于POM(Project Object Model,项目对象模型)的概念呢,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven包含了一个项目对象模型(POW),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义生命周期阶段(phase)中插件(plugin)目标的逻辑。

简单来说:Maven就是一个项目管理工具,通过pom.xml文件 的配置来获取到对应的jar包,而不用手动去添加jar包。

那么对应的Maven项目是什么呢?

什么是Maven项目?

Maven项目其实就是在java项目和Web项目的基础上裹上一层Maven,本质上java项目还是java项目、Web项目还是Web项目,但是包裹了Maven之后,我们就可以使用maven提供的一些功能(即通过pom.xmll来添加jar包)。

为什么要选择maven?

选择使用Maven的有以下几点:

  • 依赖管理:Maven能够很好地管理项目的依赖关系,可以帮助使用者自动下载和安装项目锁需要的依赖库,避免了手动管理库的过程。
  • 自动化构建:Maven能够自动化地构建项目,包括编译、测试、打包、部署等步骤,提高了开发效率。
  • 项目结构标准化:Maven定义了一种标准的目录结构和构建生命周期,使得项目结构更加清晰和一致。
  • 易于维护和扩展:Maven的配置文件pom.xml易于维护和理解,同时也提供了自动义插件和扩展。
  • 项目信息管理:Maven可以管理项目的元数据,如项目名称、描述、开发者信息等,这些信息可以被用于生成项目文档,
  • 社区支持:意味着如果有问题的时候,我们可以从社区中获取到帮助。

简单来说:maven方便,易操作,能提高开发效率

Maven仓库分类

maven仓库分为两类:本地仓库远程仓库。远程仓库又分为中央仓库、私服和其他公共库,

Maven中央仓库

Maven中央仓库是一个公开的Maven仓库,里面包含了大量的开源java项目的构建文件和依赖库,使用者可以从中央仓库中下载所需的依赖库。

中央仓库是由Maven团队自己维护的,里面存储着非常全的jar包,包含了现流行的大部分开源项目的构件。

我们可以打开下面的链接来查看中央仓库中都有哪些依赖库。

Maven

但是对于上面这种,我们如果要查找需要的依赖库的话,比较难找。

这里给大家再提供一个Maven中央仓库,能直接查找所需的依赖库。

Maven 存储库

Maven本地仓库

Maven本地仓库是指用于存放项目依赖项的本地文件系统目录。

当我们创建一个maven项目的时候,Maven会自动帮我们下载所需要的依赖项,并存放到本地仓库中。所以,当我们再创建Maven项目的时候,maven就会从本地仓库中获取依赖项,而不用再次从中央仓库上下载,提高了项目构建的速度。

Maven本地仓库默认在用户主目录下的".m2"目录下 。在**.m2** 目录下有一个名为"repository "的子类,这个目录就存储着我们所有的依赖项。每个依赖项都有自己特定的目录结构,其中包含了该依赖项的组织、名称、版本等信息。

那么如果在IDEA中查看本地仓库所在的目录呢?

我们打开设置=>在搜索栏中输入Maven,就可以看到Maven本地仓库所在的位置。

默认是在用户目录下,但是这里我把本地仓库转移到了D盘中。

如果在idea中创建Maven项目

由于IDEA集成了Maven,我们就可以在创建项目的时候勾选Maven即可。

点击create进行创建项目。

第一次创建Maven项目的时候,可能要等挺长时间(要导入很多依赖)。

当Maven项目创建完成后,我们可以在左侧看到以下的目录:

在pom配置文件下,我们可以看到一个External目录,里面存放着我们导入的jar包

Maven项目中导入第三方依赖

在没有创建Maven项目之前,我们如果想要导入第三方库,需要去中央仓库把对应的jar包下载下来,再导入到我们的项目中,这样显得很麻烦。就像在前面一篇JDBC编程中,我们就使用了这种方法。

而现在,我们创建了Maven项目,只需要将想要导入的第三方库的坐标给导入Maven项目的pom.xml文件即可

以MySQL为例,在中央仓库中搜索我们需要的MySQL版本。

这里有人可能会出现下载不下来这个第三方库的情况,这是因为:当我们第一次导入第三方库的时候,需要去 maven 的中央仓库去下载这个第三方库,而 maven 的中央仓库在国外,所以我们访问 maven 中央仓库的时候速度可能会很慢。

配置国内源

我们可以将依赖的下载路径修改成我们国内的资源,即maven中央仓库的克隆仓库,我们这里选择用的是阿里源,访问速度会比国外的速度要快。

这里如果我们是在IDEA中创建的Maven项目,那么可能没有setting.xml配置文件,所以我们可以去Maven的官网上下载:

下载 Apache Maven -- Maven

找到下载的Maven包

进入conf目录

将这段代码放在settings.xml文件中,放在mirrors标签中。

XML 复制代码
<mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>

将下面这段代码添加profiiles标签中,这个jdk版本根据自己的jdk版本进行修改。

XML 复制代码
<profile>
      <id>jdk-1.8</id>
      <activation>
	    <activeByDefault>true</activeByDefault>
	    <jdk>1.8</jdk>
      </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>

当添加完并保存中,我们需要在IDEA中设置settings.xml配置文件的所在目录。

当我们设置完后,我们就可以在pom.xml配置文件进行刷新,此时第三库就会从我们配置的阿里源中进行导入。速度比之前从国外导入的要快。

下载Maven Helper插件

我们可以下载Maven Helper插件,来查看第三库之间的依赖关系。


以上就是本篇 所有内容~

若有不足之处,欢迎指正~

相关推荐
不做超级小白32 分钟前
JavaScript反爬技术解析与应对
开发语言·javascript·ecmascript
迟來北风43 分钟前
idea找不到或无法加载主类怎么解决
java·spring boot·intellij-idea
qq_338432371 小时前
IntelliJ IDEA远程开发代理远程服务器端口(免费内网穿透)
java·ide·intellij-idea·远程开发
谢大旭1 小时前
ASP.NET Core 中使用依赖注入 (DI) 容器获取并执行自定义服务
开发语言·后端·c#·asp.net
游王子2 小时前
Python NumPy(6):修改数组形状、翻转数组、修改数组维度
开发语言·python·numpy
我命由我123452 小时前
游戏引擎 Unity - Unity 设置为简体中文、Unity 创建项目
c语言·开发语言·c++·unity·visualstudio·c#·游戏引擎
南宫生2 小时前
力扣动态规划-19【算法学习day.113】
java·学习·算法·leetcode·动态规划
优人ovo2 小时前
基于JMX实现消息队列监控
java·kafka
fly spider2 小时前
每日 Java 面试题分享【第 20 天】
java·开发语言·面试·io