本文简要介绍Maven里面的坐标(coodinate)以及maven依赖管理(Dependency)

一、坐标

先来个截图:

在上图peoject栏目有groupId,artifactId,version,这个就是maven中坐标的概念,这三个属性能够唯一定位一个java架包,其中:

  • groupId代表架包所在的组织(package的概念),比如com.cnblogs
  • artifactId是一个单独架包(项目)的唯一表示
  • version代表当前项目的版本号

另外坐标还有个packaging属性,代表项目的类型,默认是jar,描述了项目打包后的输出。

  • 类型为jar的项目产生一个JAR文件
  • 类型为war的项目产生一个web应用。

在maven项目中groupId,artifactId,version就代表一个项目的坐标,其他项目可以通过这个几个坐标属性唯一单位到当前项目。

上图中,通过junit的唯一坐标可以订位到junit4.12,然后在项目中进行使用。

maven仓库就是通过这些坐标来组织maven项目的,当项目指定了依赖的坐标后,项目就可以从maven的远程仓库中找到对应的maven项目,当相应坐标的maven项目已经在本地仓库时,项目会自动使用本地仓库坐标所能匹配的项目,而不会再从远程仓库下载。

二、依赖管理

maven坐标是maven项目的核心,依赖是通过maven坐标来实习的,上面的例子其实已经很好的演示了maven中的依赖:通过在pom文件中增加Dependency选项来完成,Dependency选项中会直接项目所依赖的项目的坐标。

2.1 传递性依赖

在上图中,当前项目啊依赖与项目b和c,b项目依赖与项目d,c项目依赖于项目e。在maven中对于当前项目来说,只需要关注b和c。也就是说,在当前项目a的pom文件中只需要配置对于b和c的依赖,d和e的传递依赖maven会自动进行加载,而无需当前项目a进行关注,这是maven的强大之一(能够很好的管理依赖)

2.2 依赖范围

    <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>

上面的依赖配置中多了个scope选项,scope选项指定了maven依赖生效的范围,上面的例子范围是test,说明它在Compiler插件运行compile目标的时候是不可用的。它只有在运行compiler:testCompile和surefire:test目标的时候才会被加入到classpath中。

Maven(2)-坐标和依赖的更多相关文章

  1. Maven之——坐标和依赖(上)

    Maven之--坐标和依赖(上) 1.    Maven坐标概念 Maven通过构件的坐标来在Maven仓库中定位到详细的构件.Maven的坐标元素包含groupId.artifactId.versi ...

  2. 【Maven】---坐标与依赖

    Maven坐标与依赖 最近想深度学习下maven,找到一本书叫<Maven实战>,这本书讲的确实很好,唯一遗憾的是当时maven教学版本是3.0.0的,而目前已经到了3.5.4了,版本存在 ...

  3. (二)Maven之坐标和依赖

    目录 坐标 依赖 目录 坐标 引言: 坐标是依赖管理的基础,是构建的唯一标识. 组成元素: 使用groupId.artifactId.version.packaging.classifier标签即可定 ...

  4. Maven添加坐标(依赖)及在Eclipse中的操作

    例如:添加一个spring-test.jar的依赖过程,普遍的做法就是直接操作pom.xml文件. 1.打开maven的中央仓库:http://search.maven.org/ 2.搜索仓库: 进入 ...

  5. 3.Maven坐标和依赖

    1.1 何为Maven坐标 正如之前所说的,Maven的一大功能就是管理项目依赖.为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标. 1.2 坐标 ...

  6. Maven学习笔记—坐标和依赖

    Maven的坐标和依赖 1 Maven坐标 1.1 什么是Maven坐标 Maven坐标:世界上任何一组构件都可以使用Maven坐标来唯一标识,Maven坐标的元素包括groupId.artifact ...

  7. Maven学习(二) -- 坐标和依赖

    标签(空格分隔): 学习笔记 坐标 实际就像在几何中,我们用一对坐标(x, y)来表示坐标系中唯一的点:或者我们可以用(经度,纬度)来表示地球上的某一个位置,在Maven的世界中,有坐标来唯一的表示项 ...

  8. Maven入门指南③:坐标和依赖

    1 . 坐标 maven 的所有构件均通过坐标进行组织和管理.maven 的坐标通过 5 个元素进行定义,其中 groupId.artifactId.version 是必须的,packaging 是可 ...

  9. 03 Maven 坐标与依赖

    Maven 坐标与依赖 Maven 的一大功能是管理项目依赖.为了能自动化地解析任何一个 Java 构件, Maven 就必须将它们唯一标识,这就依赖管理的底层基础 一一 坐标.本章将详细分析 Mav ...

随机推荐

  1. 函数的光滑化或正则化 卷积 应用 两个统计独立变量X与Y的和的概率密度函数是X与Y的概率密度函数的卷积

    http://graphics.stanford.edu/courses/cs178/applets/convolution.html Convolution is an operation on t ...

  2. Zabbix-Agent 客户端安装配置

    1.安装Zabbix官方的yum源 [root@crazy-acong ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zab ...

  3. MySQL时间函数-获取当前时间-时间差

    MySQL中获取当前时间为now(),不同于sqlserver getdate(). SQLServer转MySQL除变化top 1 -> limit 1之后报错: limit [Err] 15 ...

  4. xcode6

    官方的xcode6下载太慢,这里送上百度网盘地址: http://pan.baidu.com/s/1hqze1hi

  5. Eclipse +Tomcat配置-【菜鸟学JAVA】

    说起来也惭愧,以前用(Unieap)工具搞了一年多的JAVA+Oracle,现在居然在Eclipse中配置tomcat都搞了半天时间,原来一直是做.NET的. 今天开始不再用集成的环境,话不多说,开始 ...

  6. Gradle-jar-aar

    Ref:Android Studio系列教程 Ref:Android Studio系列教程四--Gradle基础 Ref:Intellij IDEA 14.x 中的Facets和Artifacts的区 ...

  7. MySQL查看和修改字符集的方法

    一.查看字符集 1.查看MYSQL数据库服务器和数据库字符集 方法一:show variables like '%character%';方法二:show variables like 'collat ...

  8. 查看mysql支持的存储引擎

    查看mysql支持的存储引擎 show engines\G;

  9. LeetCode:二叉树相关应用

    LeetCode:二叉树相关应用 基础知识 617.归并两个二叉树 题目 Given two binary trees and imagine that when you put one of the ...

  10. c++之helloworld与命名空间

    首先在linux中需要安装g++编译器. 在中端输入 uname -a,可以查看版本信息. 输入g++,如果提示错误.则需要使用sudo apt-get install g++. #include&l ...