`
yang8820
  • 浏览: 84059 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Maven坐标与依赖

阅读更多

坐 标

Maven坐标为各种构件引入了秩序。每个构件都必须明确定义自己的坐标,Maven坐标是通过一些元素来定义的,元素为:groupId、artifactId、version、packaging、classifier。

groupId:定义当前Maven项目隶属的实际项目,与域名相对应。如百度地图项目:com.badu.map

artifactId:该元素定义实际项目中的一个Maven项目(模块),推荐做法是使用实际项目名称作为artifactId的前缀。

version:该元素定义Maven项目当前所处的版本。如果是在开发阶段使用快照(SNAPSHOT)方式。

pachaging:该元素定义Maven项目的打包方式。默认值jar.

classifier:该元素用来帮助定义构建输出的一些附属构件。

依 赖

依赖声明:

<project>
  ...

  <dependencies>
   <dependency>
    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <version>...</version>
    <type>...</type>
    <scope>...</scope>
    <optional>...</optional>
    <exclusions>
     <exclusion>
      ...
     </exclusion>

     ...
    </exclusions>
   </dependency>
   ...

  </dependencies>
  ...
</project>

说明:1.groupId、artifactId、version为依赖的基本坐标。

         2.type:依赖类型,对应于项目坐标定义的packaging. 大部份情况下无需声明,基默认值为jar.

         3.scope:依赖范围,见A

         4.optional:标记依赖是否可选(如果构件A依赖于构件B,构件B依赖构件C为可选,则A不会传递依赖C)。

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

大部份情况下声明只包含基本坐标。

A、依赖范围说明:

compile:编译依赖范围(为默认依赖范围)。对于编译、测试和运行都有效;

test:测试依赖范围。只对测试classpath有效。如:JUnit;

provided:已提供依赖范围。对于编译和测试classpath有效,但在运行时无效。如果:servlet-api(运行时由于容器已提供,所以无需重复引入);

runtime:运行时依赖范围。对于测试和运行classpath有效,但编译主代码时无效。如:JDBC;

system:系统依赖范围。该依赖与三种classpath的关系和provided依赖范围完全一致。但必须通过systemPath元素显示地指定依赖文件的路径(systemPath元素可以引用环境变量,如:<systemPath>${java_home}/lib/rt.jar</systemPaht>)。此项目应该谨慎使用,因为它引用本地,Maven仓库之外的类库文件,可能造成构建的不可移植。

import(Maven2.0.9及以上):导入依赖范围。该依赖范围不会对三种classpath产生实际影响。

由于依赖具有传递性,可能出现一个Maven项目间接依赖某构件的不版本。Maven提供了两个依赖调解原则:

一、路径最近者优先;二、路径长度一样时,第一声明者优先。

此外,还可以在声明依赖时使用exclusions元素声明排除依赖。

分享到:
评论

相关推荐

    Maven中的依赖

    2. **依赖坐标**:每个依赖由groupId、artifactId和version组成,类似于库的唯一标识。例如,`org.springframework:spring-web:5.3.9`表示Spring框架的Web模块,版本号为5.3.9。 3. **依赖范围(scope)**:Maven...

    maven 3.5版本

    ### Maven坐标与依赖管理 每个 Maven 项目都由四个主要的坐标定义:groupId、artifactId、version 和 packaging。例如,`groupId=com.example`、`artifactId=my-app`、`version=1.0-SNAPSHOT` 和 `packaging=jar`。...

    maven_package 依赖包(完整)

    在POM中声明所需依赖,Maven会根据设定的坐标(groupId、artifactId、version)从Maven中央仓库或其他指定的远程仓库下载对应的jar包。例如,`&lt;dependency&gt;`标签用于声明项目依赖,`&lt;dependencies&gt;`标签则用于包含...

    maven依赖小例子

    这里的`groupId`、`artifactId`和`version`共同构成了Maven坐标,用于唯一标识一个依赖。Maven会根据这个坐标从中央仓库或其他配置的远程仓库下载对应的JAR文件。 Maven依赖管理遵循“传递性”原则,即如果你的项目...

    Maven的依赖验证项目

    这里的`groupId`、`artifactId`和`version`共同构成了Maven坐标,用于唯一标识一个项目或库。Maven会根据这些信息从Maven中央仓库或其他指定的远程仓库下载对应的jar文件。 Maven的依赖机制遵循“传递性”原则,这...

    三. 坐标和依赖

    2. **Maven坐标**:在Maven中,每个依赖由三部分组成,即groupId(表示项目或组织的唯一标识)、artifactId(项目或模块的标识)和version(该组件的版本号)。 3. **依赖的传递性**:如果项目A依赖于B,B又依赖于C...

    Maven本地仓库依赖环境

    这里`groupId`、`artifactId`和`version`共同构成了Maven的坐标,用于唯一标识一个库。 总的来说,理解并掌握Maven的本地仓库和依赖管理对于JavaWeb开发者至关重要,它能够简化项目构建过程,提高开发效率,并确保...

    Maven 依赖详细理解.pdf

    声明优先原则是指,如果有多个具有相同坐标的依赖项,Maven会优先选择最后声明的依赖项。 Maven还支持传递性依赖。当我们引入一个依赖项时,Maven会自动引入该依赖项所依赖的其他依赖项。例如,如果我们引入了...

    jodconverter2.2.2.jar Maven依赖包

    在这个例子中,'com\'暗示了groupId可能是'com.artofsolving\',这是一个假设的组织名,实际的groupId应在解压前查看Maven依赖的完整坐标。 标签“jodconverter”、“maven”、“jar”和“java”揭示了几个关键点:...

    maven中的mybatis依赖

    1. **groupId**:这是所有Maven坐标的第一部分,类似于Java包名,用于唯一标识一个项目或组织。这里的`org.mybatis`表示这个依赖属于MyBatis组织。 2. **artifactId**:这是Maven坐标的一部分,用于标识同一个项目...

    maven-dubbo-consumer

    1. **Maven**:Maven是Java项目管理工具,用于构建、依赖管理和项目信息管理。在这个项目中,Maven负责编译源代码、运行测试、打包应用,并管理项目的依赖关系。 2. **Dubbo**:Dubbo的核心功能包括服务注册与发现...

    JxBrowser开发maven仓库jar包

    总的来说,当中央Maven仓库找不到特定的依赖时,开发者需要自行下载并管理这些依赖。对于JxBrowser,这个过程包括下载jar包、安装到本地仓库、并在项目中配置依赖。通过这样的方式,即使官方仓库不可用,我们依然...

    grails3.2.8的maven依赖

    在实际开发中,Grails 3.2.8与Maven的结合使得开发者能够充分利用Maven的强大功能,如依赖管理和构建自动化,同时享受Grails带来的便捷和高效。通过熟练掌握这两个工具的集成使用,你可以更有效地构建和管理复杂的...

    国产数据库人大金仓 MVEN 依赖 kingbase8-8.2.0.jar

    本资源是国产数据库人大...本地maven 依赖操作mvn install:install-file -Dfile=G:\kingbase8-8.2.0.jar -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=8.2.0 -Dpackaging=jar 你本地就能用这个依赖了。

    普通Maven项目,Java,Maven,依赖

    - POM:每个Maven项目都有一个POM.xml文件,它包含了项目的配置信息,如项目坐标(groupId, artifactId, version)、依赖、构建指令等。 - 依赖管理:Maven通过POM文件中的标签来管理项目依赖,自动下载并管理这些...

    maven安装与使用

    - **坐标**:每个Maven构件都由一组坐标唯一标识,包括Group ID、Artifact ID和Version。 - **仓库**:Maven使用仓库来存储和管理构件。本地仓库存储本地开发过程中使用的构件,而中央仓库则包含了大量公共可用的...

    构建之源:Maven 坐标(GroupID、ArtifactID、Version)全解析

    2. **依赖管理**:Maven 能够自动处理项目所需的所有外部依赖,开发者不需要手动下载和配置。 3. **项目生命周期**:Maven 定义了一系列的构建生命周期阶段,如 `clean`、`compile`、`test`、`package` 等,每个阶段...

    maven 构建好的 IK 分词器,可直接使用

    "Maven 构建好的 IK 分词器,可直接使用" 这个标题告诉我们,这里提供的是一个已经使用 Maven 构建完成的 IK 分词器,专为 Elasticsearch 2.2 版本设计。IK 分词器是针对中文文本进行分词处理的工具,通常用于提高...

Global site tag (gtag.js) - Google Analytics