Maven项目管理工具:Maven依赖

Maven是一款优秀的依赖管理工具,那么什么是依赖呢?

通俗的说,如果一个Maven构建所产生的构件(例如Jar文件)被其他项目引用,那么该构件就是其他项目的依赖。

依赖声明

Maven坐标是依赖的前提,所有Maven项目必须明确定义自己的坐标,只有这样,它们才可能成为其他项目的依赖。当一个项目的构件成为其他项目的依赖时,该项目的坐标才能体现出它的价值。

当Maven项目需要声明某一个依赖时,通常只需要在其POM中配置该依赖的坐标信息,Maven会根据坐标自动将依赖下载到项目中。

例如,某个项目中使用servlet-api作为其依赖,其配置如下。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
...
 <dependencies>
  <dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>servlet-api</artifactId>
   <version>2.5</version>
   <scope>provided</scope>
  </dependency>
 </dependencies>
</project>123456789101112复制代码类型:[java]

dependencies元素可以包含一个或者多个dependency子元素,用以声明一个或者多个项目依赖,每个依赖都可以包含以下元素:

groupId、artifactId和version:依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven根据坐标才能找到需要的依赖。

type:依赖的类型,对应于项目坐标定义的packaging。大部分情况下,该元素不必声明,其默认值是jar。

scope:依赖的范围。

optional:标记依赖是否可选。

exclusions:用来排除传递性依赖。

大部分依赖声明只包含groupId、artifactId和version三个元素,至于scope、optional以及exclusions等元素,了解即可,在后续的学习中我们会陆续进行讲解。

获取依赖坐标

通常情况下,绝大部分依赖的Maven坐标都能在https://mvnrepository.com/中获取。

例如,当项目中需要引入junit进行单元测试时,我们只需要在首页搜索junit即可,如下图。

选择合适的版本,在依赖详情页的最下方就是该版本依赖的Maven坐标,我们可以直接将其复制到项目的pom.xml中使用。

(0)

相关推荐

  • 五分钟快速掌握Maven的核心概念

    回复"面试"获取全套面试资料 前两天在一个技术群,有人还在问maven中groupId.artifactId.version这些关键字的含义是什么,于是,我觉得还是很有必要来聊聊M ...

  • Maven项目管理工具:Maven生命周期(clean+site+default)

    在Maven出现之前,项目构建的生命周期就已经存在,开发人员每天都在对项目进行清理,编译,测试及部署,但由于没有统一的规范,不同公司甚至不同项目之间的构建的方式都不尽相同. Maven从大量项目和构建 ...

  • Maven项目管理工具:Maven仓库(本地仓库+远程仓库)

    在Maven中,任何一个依赖.插件或者项目构建的输出,都可以称为构件. Maven在某个统一的位置存储所有项目的构件,这个统一的位置,我们就称之为仓库.换言之,仓库就是存放依赖和插件的地方. 任何的构 ...

  • Maven项目管理工具:Maven自动化构建

    Maven自动化构建是一种方案,即当某个项目构建完成后(特别是有代码更新的情况下),所有依赖它的相关项目也应该开始构建过程,以确保这些项目的稳定运行. Maven的自动化构建主要通过如下两种方案实现: ...

  • Maven项目管理工具:MavenSNAPSHOT(快照)

    我们知道,Maven项目第一构建时,会自动从远程仓库搜索依赖项,并将其下载到本地仓库中.当项目再进行构建时,会直接从本地仓库搜索依赖项并引用,而不会再次向远程仓库获取.这样的设计能够避免项目每次构建时 ...

  • Maven项目管理工具:MavenArchetype(原型/模板)

    Archetype是Maven项目的模板工具包,它定义了Maven项目的基本架构.Archetype为开发人员提供了数千种创建Maven项目的模板,Maven通过这些模板可以帮助用户快速的生成项目的目 ...

  • Maven项目管理工具:Maven聚合

    在实际的开发过程中,我们所接触的项目一般都由多个模块组成.在构建项目时,如果每次都按模块一个一个地进行构建会十分得麻烦,Maven的聚合功能很好的解决了这个问题. 聚合 使用Maven聚合功能对项目进 ...

  • Maven项目管理工具:IDEA配置Maven环境

    IntelliJIDEA是当前最流行的JavaIDE(集成开发环境)之一,也是业界公认最好用的Java开发工具之一.IntelliJIDEA支持Maven的全部功能,通过它我们可以很轻松地实现创建Ma ...

  • Maven项目管理工具:Eclipse配置Maven

    前面所涉及的Maven项目结构和代码都十分的简单,即使是使用最简单的文本编辑器也能够很快就能完成.但在实际的开发过程中,我们所涉及的Maven项目往往要复杂得多,此时我们就需要借助IDE(集成开发环境 ...

  • Maven项目管理工具:Maven创建Web项目

    到目前为止,我们所接触的Maven项目的打包类型只有JAR和POM,但在现今的互联网时代,我们创建的大部分应用程序都是Web应用,在Java中Web应用的打包方式是WAR. 本节我们将介绍如何使用Ma ...