1.坐标

1)数学上的坐标:

  [1].在平面上. 使用X,Y两个向量可以唯一的定位平面上的任意一个点

  [2]在空间中, 使用X,Y,Z三个向量可以唯一的定位空间中的任何一个点

2)Maven中的坐标:

  使用下面三个向量在查看中唯一定位一个Maven工程,简称GAV

  [1]groupid : 公司或组织域名倒序 + 项目名

 <groupid>com.wzy.maven</groupid>

  [2]artfactid : 模块

 <artifactid>Hello</artifactid>

  [3]version : 版本

 <version>1.0.0</version>

  Maven工程的坐标与仓库中路径的对应关系

 <groupid>org.springframework</groupid>
<artifactid>spring-core</artifactid>
<version>4.0.0.RELEASE</version>

  对应的路径是:groupid / artifactid / version / artifactid-version.jar

 org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar

2.POM

含义: Project Object Model 项目对象模型,类似于DOM Document Object Model 文档对象模型pom.xml对于Maven工程是核心配置文件, 与构建过程相关的一切设置都在这个文件中进行配置 重要程度相当于web.xml对于动态web工程。

3.仓库

1)什么是仓库?

Maven仓库就是放置所有jar文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖jar.

2)仓库的分类:

  [1]本地仓库: 当前电脑上部署的查看目录, 为当前电脑上所有Maven工程服务

  [2]远程仓库:

    (1).私服: 架设在当前局域网环境下, 为当前局域网范围内所有Maven工程服务

    ​(2)中央仓库: 架设在Internet上, 为全世界所有Maven工程服务

    (3)中央仓库镜像:架设在各大洲, 为中央仓库分担流量, 减轻中央仓库的压力, 同时更快的响应用户请求(如aliyun镜像)

3)仓库中保存的内容

  [1]Maven自身所需要的插件

  [2]第三方框架或工具的jar包

  [3]我们自己开发的Maven工程

4.依赖

1)什么是依赖?

  Maven解析依赖信息时会到本地的仓库中查找被依赖的jar包,对于我们自己开发的maven工程, 使用mvn instail命令安装后就可以进入仓库。

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

2)依赖的范围

  Maven依赖有以下几种范围,compile、test、provided、runtime、system,这五种范围分表示了,在项目构建过程当前依赖所起的作用,其中Maven中默认的依赖范围是compile

  [1]compile范围依赖

    对主程序是否有效:有效

    对测试程序是否有效: 有效

    是否参与打包: 参与

    是否参与部署: 参与

    典型例子: spring-core

  [2]test范围依赖

    对主程序是否有效: 无效

    对测试程序是否有效: 有效

    是否参与打包: 不参与

    是否参与部署: 不参与

    典型例子: junit

  [3]provided范围依赖

    对主程序是否有效: 有效

    对测试程序是否有效: 有效

    是否参与打包: 不参与

    是否参与部署: 不参与

    典型的例子: servlet-api.jar

  [4]runtime范围依赖

    对主程序是否有效: 有效

    对测试程序是否有效: 有效

    是否参与打包: 参与

    是否参与部署: 参与

    典型的例子: JDBC驱动

  [5]system范围依赖

    对主程序是否有效: 有效

    对测试程序是否有效: 有效

    是否参与打包: 不参与

    是否参与部署: 不参与

    典型的例子: 手动引入的jar而非在仓库中查找到的

3)关于system依赖范围的说明

  上面几种依赖范围比较特殊的依赖范围就是system,它的作用基本和provided类似,但是需要手动引入jar包的路径,用法如下,通常不建议使用,因为最好的做法是通过Maven在本地仓库引入jar包。

 <dependencies>
  <dependency>
   <groupId>javax.sql</groupId>
   <artifactId>jdbc-stdext</artifactId>
   <version>2.0</version>
   <scope>system</scope>
   <systemPath>${java.home}/lib/rt.jar</systemPath>
  </dependency>
</dependencies>

Maven项目构建利器04——Maven的一些核心概念的更多相关文章

  1. Maven项目构建利器05——Maven的生命周期

    Maven各个构建环节执行的顺序: 不能打乱顺序, 必须按照既定的正确顺序(编译,测试.打包.部署)来执行Maven的核心程序中定义了抽象的生命周期, 生命周期中各个阶段的具体任务是由插件来完成的,可 ...

  2. Maven项目构建利器03——第一个Maven工程

    1.Maven工程的结构 我们需要通过Maven进行自动化构建, 以编译为例, Maven要想自动进行编译, 那么它必须知道Java源文件保存在哪里,所以要遵守Maven的约定,也就是约定大于配置,配 ...

  3. Maven项目构建利器01——为什么要使用Maven

    1.为什么要使用Maven a)一个项目就是一个工程 如果一个项目非常庞大,不适合用package(包)来划分模块, 最好是每一个模块对应一个工程 分工合作,借助于Maven就可以将一个项目拆分成多个 ...

  4. Maven项目构建利器02——安装Maven核心程序

    1.Maven也是用Java编写的工具,同样运行在JVM上,所以我们在安装Maven之前需要确保已经安装了JDK,首先来检查电脑上是否安装JDK. 2.如上图说明电脑中已经安装了JDK,下面就要去官网 ...

  5. 准备阶段-maven项目构建

    依据我现阶段对maven的了解,具使用POM管理项目和强大的repository资源管理库支持. 在项目建立初期,对网站的可拓展.高并发.易于管理做了评估.最终使用Maven 管理该项目 . 如下是m ...

  6. (转)Maven学习总结(二)——Maven项目构建过程练习

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...

  7. Maven学习总结(2)——Maven项目构建过程练习

    Maven学习总结(二)--Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项目的过程 一.创建Maven项目 1.1.建 ...

  8. maven系列之二maven项目的创建和maven项目的结构

    maven系列之一简单介绍了maven的基本信息,安装和配置,大家对maven有一个大概的了解,但是在maven项目开发中远远不够,为了进一步了解maven,现在我们介绍maven项目的创建和mave ...

  9. Eclipse如何导入maven项目,以及配置maven

    Eclipse如何导入maven项目,以及配置maven 一.准备工作 1. eclipse,安装了eclipse 2. 一个需要导入的maven项目 3. 下载好了的压缩包apache-maven- ...

随机推荐

  1. leetcode-easy-trees-101. Symmetric Tree-YES

    mycode   92.44% # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, ...

  2. python获取豆瓣日记

    最近迷上了看了四个春天,迷上了饭叔的豆瓣日记,想全部抓取下来,简单了写了下面的脚本 import urllib.request import os from bs4 import BeautifulS ...

  3. web开发(三) 会话机制,Cookie和Session详解

    在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6422391.html>,在此仅供学习参考之用. 一.会话 ...

  4. python学习笔记:(十一)模块

    模块是指一个包含定义的函数和变量的文件,其后缀名为.py.模块可以被别的程序引用,并使用其中的函数等功能. 1.import语句 如果需要使用模块,只需要在新模块中导入模块.使用import关键字 如 ...

  5. kernel function

    下面这张图位于第一.二象限内.我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母.我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横.纵坐标是两个特征.显然,在这 ...

  6. wpf 虚拟键盘 对外部程序

    对外部程序,以记事本为例,xaml中设置模拟按键的控件 Focusable="False": /// <summary> /// 发送按键 /// </summa ...

  7. 精通CSS:高级Web标准解决方案(第二版) 不明白的地方

    P47 在图3-14中,当把框1向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘.因为它不在处于文档流中,所以它不占据空间,实际上覆盖住了框2,使框2从视图中消失. 我的疑问是, ...

  8. HTML DOM Document对象 元素对象 属性对象 事件对象

    DOM Document对象 DOM 元素 对象 DOM 属性 对象 DOM 事件 菜鸟教程上 总结挺全的,就不多废话,链接点进去即可.. 后期对经常用到的会在此更新一些总结..... 开学了...自 ...

  9. 【miscellaneous】北斗短报文

    北斗系统最大的特色在于有源定位和短报文特色服务,不止解决了中国有无卫星导航系统的问题,还能将短信和导航结合,是中国北斗卫星导航系统的独特发明,也是一大优势. 北斗的短报文功能,在国防.民生和应急救援等 ...

  10. 未能加载文件或程序集“microsoft.Build.Engine, Version=3.5.0.0,...”或它的摸一个依赖项。

    今天想打开IIS服务,然后点错了,不小心关掉了.net组件,结果vs就一直打不开项目,最后在网上查到了原因,打开 控制面板->程序和功能->打开或关闭功能 在里面勾选Microsoft . ...