之前通过学习对maven命令有了部分了解,但是只是知道maven是用来做什么。但到目前位置还不足以全面的了解maven,为更全面的了解maven,需要学习以下几个概念:Maven坐标、Maven仓库、Maven生命周期。

Maven坐标

maven坐标概念:每个构件都有自己的一个标识(唯一的),它由groupId,artifactId,version等信息组成,因此maven就可以对构件进行版本控制、管理。

备注:

groupId :公司名称或者组织名称;

artifactId:项目名称;

version:当前项目的版本号。

上边定义maven的概念时提到了构件,那么什么是构件呢?

------在maven中任何依赖(jar包)、项目输出(通过其他工具打包的jar、war等)都可以称为构件。

packing:定义maven项目打包的方式,也可以通过定义打包成war等;当不定义packing时,maven就会使用默认值jar。

classifer:表示在相同版本下针对不同的环境或者jdk使用的jar,如果配置了这个元素,则将这个元素的名称附加到报名的后边。例如:json-0.1-jdk1.6.jar。

Maven仓库

 maven仓库定义:在maven中会有一个统一存储所有项目的共享构建的位置,这个统一的位置,我们就称之为仓库。

maven仓库的分类:本地仓库、远程仓库。

其中远程仓库有分为三种:中央仓库、私服、其他公共仓库。

1)本地仓库:maven在本地存储构件的地方。

注意:maven的本地仓库,在maven安装后并不创建,它是在第一次执行maven命令的时候才被创建的。

maven本地仓库的默认位置:无论windows还是linux环境,都是默认位置都是在用户的目录下的一个./m2/repository/仓库目录,这就是maven仓库的默认位置。

maven本地仓库的默认位置更改:通过修改配置文件settings.xml中的localRepository标签,就可以实现。

备注:一般修改时,可以把之前已经下载的本地构件内容赋值到新的构件存储目录下,这样就可以省去重新下载构件的时间。

Maven生命周期

maven声明周期概念:它是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建过程步骤。

Maven有三套相互独立的生命周期,它们是相互独立的。分别是:

Clean   :在进行构件之前进行一些清理工作

1)pre-clean:执行清理前需要完成的工作;

2)clean:清理上一次构建生成的文件;

3)post-clean:执行清理后需要完成的工作。

Default:构件的核心部分:编译、测试、打包、部署等

1)validate:验证工程是否正确,所有需要的资源是否可用;

2)compile:编译项目的源代码;

3)test:使用合适的单元测试框架来测试已经编译的源代码,该测试不需要打包和部署。

4)package:把已编译的代码打包发成可发布的格式,比如:jar;

5)integration-test:如有需要将包处理和发布一个能够进行集成测试的环境。

6)verify:运行所有检查,验证包是否有效且达到质量标准;

7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用;

8)deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

Site      :生成项目报告、站点,站点发布。

1)pre-site:生成项目站点之前需要完成的工作;

2)site:生成项目站点文档;

3)post-site:生成项目站点之后需要完成的工作;

4)site-deploy:将项目站点文件发布到服务器。

注意:

运行任何一个阶段的时候,它前面的所有阶段都会被运行。例如:运行mvn install时,代码会被编译、测试、打包。

比如:运行mvn site命令,一定会执行pre-site该步骤;运行mvn site-deploy命令,一定会执行pre-site和site这两个步骤。

Java-Maven(三):Maven坐标、Maven仓库、Maven生命周期的更多相关文章

  1. maven的仓库、生命周期与插件

    一.仓库 统一存储所有Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(另一种特殊的远程仓库,为节省宽带和时 ...

  2. Maven核心概念之仓库,生命周期与插件

    宏观图 一.仓库 统一存储全部Maven项目共享的构建的位置就是仓库. 仓库分为本地仓库和远程仓库.远程仓库又分为中央仓库(中央仓库是Maven核心自带的远程仓库),伺服(还有一种特殊的远程仓库,为节 ...

  3. Maven 学习总结 (二) 之 生命周期与插件

    五.生命周期与插件 1.Maven有三套独立的生命周期:clean.default和site. clean生命周期的目的是清理项目,default生命周期的目的是构建项目,site生命周期的目的是建立 ...

  4. 深入理解maven及应用(一):生命周期和插件

    在项目里用了快一年的maven了,近期突然发现maven项目在eclipse中build时很慢,由于经经常使用clean install命令来build项目,也没有管那么多,但近期实在受不了乌龟一样的 ...

  5. 构件工具Maven----坐标、依赖、仓库、生命周期的简单学习

    这篇文章对Maven中几个比较重要的概念坐标.依赖.仓库.生命周期做一个简单的介绍. 1.关于Maven坐标 用来区别Maven世界中任何一个构件,Maven坐标的元素包括groupId.artifa ...

  6. Maven环境搭建及常用命令、生命周期

    一.下载maven包,解压 二.配置环境变量,MAVEN_PATH=解压路径 添加到path中 三.测试  mvn -v 查看maven版本 四.设置本地仓库的路径 在conf文件夹下的setting ...

  7. Java并发1——线程创建、启动、生命周期与线程控制

    内容提要: 线程与进程 为什么要使用多线程/进程?线程与进程的区别?线程对比进程的优势?Java中有多进程吗? 线程的创建与启动 线程的创建有哪几种方式?它们之间有什么区别? 线程的生命周期与线程控制 ...

  8. Fastify 系列教程三 (验证、序列化和生命周期)

    Fastify 系列教程: Fastify 系列教程一 (路由和日志) Fastify 系列教程二 (中间件.钩子函数和装饰器) Fastify 系列教程三 (验证.序列化和生命周期) 验证 Fast ...

  9. Java多线程2:线程的使用及其生命周期

    一.线程的使用方式 1.继承Thread类,重写父类的run()方法 优点:实现简单,只需实例化继承类的实例,即可使用线程 缺点:扩展性不足,Java是单继承的语言,如果一个类已经继承了其他类,就无法 ...

  10. Java并发编程实战(5)- 线程生命周期

    在这篇文章中,我们来聊一下线程的生命周期. 目录 概述 操作系统中的线程生命周期 Java中的线程生命周期 Java线程状态转换 运行状态和阻塞状态之间的转换 运行状态和无时限等待状态的切换 运行状态 ...

随机推荐

  1. 【转载】Perl中的引用

    为什么使用引用? 在perl4中,hash表中的value字段只能是scalar,而不能是list,这对于有些情况是很不方便的,比如有下面的数据: Chicago, USAFrankfurt, Ger ...

  2. spring cloud 专题一 (spring cloud 入门搭建 之 Eureka注册中心搭建)

    一.前言 本文为spring cloud 微服务框架专题的第一篇,主要讲解如何快速搭建spring cloud微服务及Eureka 注册中心 以及常用开发方式等. 本文理论不多,主要是傻瓜式的环境搭建 ...

  3. call of overloaded 'xxx' is ambiguous

    这里定义了一个模版函数,功能同STL里的copy函数: #include <vector> #include <list> #include <iostream> ...

  4. ELK学习笔记(四)SpringBoot+Logback+Redis+ELK实例

    废话不多说,直接上干货,首先看下整体应用的大致结构.(整个过程我用到了两台虚拟机  应用和Shipper 部署在192.168.25.128 上 Redis和ELK 部署在192.168.25.129 ...

  5. Redis --> Redis架构设计

    Redis架构设计 一.前言   Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列 ...

  6. Redis --> 为redis分配新的端口

    为redis分配新的端口 为redis分配一个8888端口,操作步骤如下:1.$REDIS_HOME/redis.conf重新复制一份,重命名为redis8888.conf.2.打开redis8888 ...

  7. 简单爬虫 -- 以爬取NASA AOD数据(TIFF文件)为例

    目录: 网站分析 爬取下载链接 爬取TIFF图片 1.网站分析 主页面:https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MYDAL2_M_AER_OD ...

  8. [css 揭秘]:CSS编码技巧

    CSS编码技巧 我的github地址:https://github.com/FannieGirl/ifannie 喜欢的给我一个星吧 尽量减少代码重复 尽量减少改动时需要编辑的地方 当某些值相互依赖时 ...

  9. python全栈学习--day5

    字典 特点:字典是python中唯一的映射类型,采用键值对(key-value) 的形式存数据. 存储大量的数据,是关系型数据,查询数据快. 字典初始说明: 遍历字典从列表开始,列表是从头便利到尾的. ...

  10. Beta总结篇

    45°炸 031502601 蔡鸿杰 031502604 陈甘霖 031502632 伍晨薇 一.项目预期进展及现实进展 项目预期计划 现实进展 Github使用 √ 日拍 (调用相机.相册) √ 足 ...