Maven简介

  1、Maven是一款服务于Java平台的自动化构建工具。

  2、构建:

    - 概念:以“Java源文件”、“框架配置文件”、“JSP”、“HTML”、“图片”等资源为“原料”,去“生产”一个可以运行的项目的的过程

    - 编译:Java源文件【User.java】->编译->Class字节码文件【User.class】->交给JVM去执行

    - 部署:一个BS项目最终运行的并不是动态Web工程本身,而是这个动态Web工程的“编译结果”

  3、构建过程中的各个环节

    - 清理:将以前编译得到的旧的class字节码文件删除,为下一次编译做准备

    - 编译:将Java源程序编译成class字节码文件

    - 测试:自动测试,自动调用junit程序

    - 报告:测试程序执行的结果

    - 打包:动态Web工程打war包,Java工程打jar包

    - 安装:Maven特定的概念,将打包得到的文件复制到“仓库”中的指定位置

    - 部署:将动态Web工程生成的war包复制到Servlet容器的指定目录下,使其可以运行

  4、自动化构建

安装Maven核心程序

  1、检查JAVA_HOME环境变量

  2、解压Maven核心程序的压缩包,放在一个非中文无空格路径下

  3、配置Maven相关的环境变量

    M2_HOME

    path

  4、运行mvn -v 命令查看Maven版本

Maven的核心概念

  1、约定的目录结构

  2、POM

  3、坐标

  4、依赖

  5、仓库

  6、生命周期/插件/目标

  7、继承

  8、聚合

第一个Maven工程

  1、创建约定的目录结构

    根目录:工程名

    src目录:源码

    pom.xml文件:Maven工程的核心配置文件

    main目录:存放主程序

    test目录:存放测试程序

    java目录:存放Java源文件

    resources目录:存放框架或其他工具的配置文件

常用Maven命令

  注:执行与构建过程相关的Maven命令,必须进入pom.xml所在的目录

  常用命令:

    mvn clean:清理

    mvn compile:编译主程序

    mvn test-compile:编译测试程序

    mvn test:执行测试

    mvn package:打包

    mvn install:安装

    mvn site:生成站点

POM

  1、含义:Project Object Model项目对象模型

  2、pom.xml对于Maven工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行配置

坐标

  1、数学中的坐标

  2、Maven中的坐标

    使用下面三个向量在仓库中唯一定位一个Maven工程

    groupid:公司或组织域名倒叙+项目名

    artifactid:模块名

    version:版本

仓库

  1、仓库的分类

    本地仓库:

    远程仓库:

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

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

      - 中央仓库镜像:分担中央仓库的流量,提升用户访问速度

  2、仓库中保存的内容:Maven工程

    - Maven自身所需要的插件

    - 第三方框架或工具的jar包

    - 我们自己开发的Maven工程

依赖

  1、Maven解析依赖信息时会到本地仓库中查找被依赖的jar包

    - 对于我们自己开发的Maven工程,使用mvn install命令安装后就可以进入仓库

  2、依赖的范围

    - compile范围依赖:对主程序、测试程序都有效、参与打包

    - test范围依赖:对主程序无效、对测试程序有效、参与打包

    - provided范围依赖:对主程序、测试程序有效、不参与打包、不参与部署

生命周期

  1、各个构建环节执行的顺序:不能打乱顺序,必须按照既定的正确顺序来执行

  2、Maven的核心程序中定义了抽象的生命周期,生命周期中各个阶段的具体任务是由插件来完成的

  3、Maven核心程序为了更好的实现自动化构建,按照以下特点执行生命周期中的各个阶段:

    即无论要执行生命周期中的哪一个阶段,都从这个生命周期最初的位置开始执行

  4、插件和目标

    - 生命周期的各个阶段仅仅定义了要执行的任务是什么

    - 各个阶段和插件的目标是对应的

    - 相似的目标由特定的插件来完成

在Eclipse中使用Maven

  1、Maven插件:Eclipse内置

  2、Maven插件的设置

    - installations:指定Maven核心程序的位置。

    - user settings:指定conf/settings.xml的位置,进而获取本地仓库的位置

JavaEE高级-Maven学习笔记的更多相关文章

  1. JavaEE高级-SpringMVC学习笔记

    *SpringMVC概述 - Spring为展示层提供的基于MVC设计理念的优秀Web框架,是目前最主流的MVC框架之一 - Spring3.0后全面超越Struts2,成为最优秀的MVC框架 - S ...

  2. JavaEE高级-MyBatisPlus学习笔记

    第 1 章 简介 1.1 MyBatisPlus 介绍 -MyBatis-Plus(简称 MP),是一个 MyBatis 的增强工具包,只做增强不做改变. 为简化开发工作.提高生产率而生我们的愿景是成 ...

  3. JavaEE高级-MyBatis学习笔记

    一.MyBatis简介 - MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架. - MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集. - My ...

  4. JavaEE高级-Spring学习笔记

    *Spring是什么? - Spring是一个开源框架 - Spring为简化企业级应用开发而生.使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能 - Spring是一个I ...

  5. JavaEE高级-JPA学习笔记

    *JPA概述 *JPA是什么? - Java Persistence API :用于对象持久化的API - Java EE 5.0平台标准的ORM规范,使得应用程序以统一的方式访问持久化层 - JPA ...

  6. JavaEE高级-Struts2学习笔记

    Struts2是一个用来来发MVC应用的框架,它提供了Web应用程序开发过程中一些常见问题的解决方案: - 对来自用户的输入数据进行合法的验证 - 统一的布局 - 可扩展性. - 国际化和本地化 - ...

  7. JavaEE高级-Hibernate学习笔记

    *什么是Hibernate? > 一个框架 > 一个Java领域的持久层框架 > 一个ORM框架 *对象的持久化 > 狭义的理解:“持久化”仅仅指把对象永久保存到数据库中 &g ...

  8. Maven学习笔记—仓库

    Maven仓库 1 什么是Maven仓库 在Maven中,任何一个依赖.插件或者项目构建的输出,都可以成为构件,而Maven通常在某个位置统一的存储所有Maven项目共享的构件,这个统一的位置就是Ma ...

  9. Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

随机推荐

  1. localstorage sessionstorage cookie的区别

    一.基本概念 Cookie cookie比较小,大小限制在4kb左右,是网景公司的前雇员 LouMontulli 在1993年3月的发明.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记 ...

  2. 分布式工作流任务调度系统Easy Scheduler正式开源

    分布式工作流任务调度系统Easy Scheduler正式开源 1.背景 在多位技术小伙伴的努力下,经过近2年的研发迭代.内部业务剥离及重构,也经历一批种子用户试用一段时间后,EasyScheduler ...

  3. es6 语法的

    es5 中提供了 两个声明变量的方式 var function es6 中提供了 四种声明变量的方式 let const class import 现在,定义变量的关键字有 6 个了 备注:不能忽略函 ...

  4. sed扩展命令使用

    [root@b ~]# cat f.txt inet addr:192.168.0.110 Bcast:192.168.0.255 Mask:255.255.255.0[root@b ~]# cat ...

  5. Docker容器技术入门

    独立容器分开的条件: 1.Namespace命名空间 1.主机名和域名,UTS 2.文件系统,mount 3.进程间通信,IPC 4.独立的进程树PID 5.独立的用户User 6.独立的IP地址tc ...

  6. 集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现

      /** * 因为微信总是很多个商户号很多和appid.很多个密钥文件,所以全部改成手动传值的方式,就可以支持多商户调用 * * @param appId 商户的appid * @param mch ...

  7. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第1节 基本概念_01maven概述

  8. 几家大的券商的PB系统以及算法交易概况大致是怎样的?

    PB的定位是托管-清算-交易.目前的PB系统方面的竞争点主要放在了交易环节(毕竟托管和清算没有多大的差异).目前的pb交易环节的技术提供有恒生.讯投.金证.同花顺等,以满足私募及高净值个人多样化交易和 ...

  9. SPA(single page application)

    一.SPA的概述 SPA(single page application)单页面应用程序,在一个完成的应用或者站点中,只有一个完整的html页面,这个页面有一个容器,可以把需要加载的代码片段插入到该容 ...

  10. 【HANA系列】SAP HANA SQL获取当前月的第一天

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL获取当前 ...