1.maven 简介
maven是Apach软件基金会维护的一款自动化构建工具;
作用是服务于java平台的项目构建和依赖管理;
 
2.关于项目构建
1)java代码
Java是一门编译型语言,.java扩展名的源文件需要编译成.class扩展名的字节码文件才能够执行;
所以编写任何Java代码想要执行的话就必须经过编译得到对应的.class文件;
 
2)web工程
部署:如果要通过浏览器访问java 程序,必须将编译好的java程序的web工程放入服务器的指定目录;这一过程称为部署;
如图:web工程和其编译后的结果目录结构对比
3)实际项目
实际项目除了web工程编译结果的文件之外;还需要第三方jar包及各种配置文件;这些也需要按正确的目录结构部署到服务器;
 
3.项目构建过程
①清理:删除以前的编译结果,为重新编译做好准备。
②编译:将Java源程序编译为字节码文件。
③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
④报告:在每一次测试后以标准的格式记录和展示测试结果。
⑤打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java工程对应jar包,Web工程对应war包。
⑥安装:在Maven环境下特指将打包的结果——jar包或war包安装到本地仓库中。
⑦部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行。
 
4.maven核心概念
maven可以实现项目的自动化构建;
maven通过以下9个核心概念来实现自动化构建的:
    ①POM
    ②约定的目录结构
    ③坐标
    ④依赖管理
    ⑤仓库管理
    ⑥生命周期
    ⑦插件和目标
    ⑧继承
    ⑨聚合
 
5.约定的目录结构
在开发中如果需要第三方框架知道自己创建的资源在哪里有两种方式:
    -通过配置文件来明确告诉;
    -基于第三方框架的约定;
 
为了maven能识别项目从而实现自动化构建,必须按maven约定的目录结构来创建项目:
 
6.关于POM
pom (project object model):项目对象模型;
是将java项目的相关信息封装为对象作为便于操作和管理的模型;
pom是maven项目的核心配置;
 
7.maven坐标
就像x、y、z三个坐标可以确定三维空间上的一点;maven工程也需要在maven仓库中唯一定位;
maven工程用下面的三个向量来定位:
    groupid    ->一般用公司名称的倒序;例如com.liusir
    artifactld    ->当前项目的模块名称;
    version    ->当前模块的版本;
例如:
<groupId>com.liusir</groupId>
<artifactId>Hello</artifactId>
<version>0.01-SNAPSHOT</version>
 
通过坐标在maven仓库中找jar包:
    将三个向量连起来:
com.liusir+Hello+0.01-SNAPSHOT
    将连起来的字符换成目录结构在maven仓库中找:
com/liusir/Hello/0.01-SNAPSHOT/HELLO-0.01-SNAPSHOT.jar
例如:查找spring-core
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
在maven仓库里的路径:
注意:我们自己的maven工程必须执行安装操作才会进入仓库;命令是:mvn install
 
 
 
 

maven的概念-01的更多相关文章

  1. (转)Maven学习总结(四)——Maven核心概念

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(四)——Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Mav ...

  2. Maven(三)理解Maven核心概念

    转载自: http://www.cnblogs.com/holbrook/archive/2012/12/24/2830519.html 本文以类图的方式,介绍maven核心的12个概念以及相互之间的 ...

  3. (一)Maven 基本概念——根目录、项目创建、坐标

     1. MavenProjectRoot(项目根目录)   |----src   |     |----main   |     |         |----java ——存放项目的.java文件  ...

  4. Maven学习总结(4)——Maven核心概念

    Maven学习总结(四)--Maven核心概念 一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识 ...

  5. Maven(一)Maven 的概念和安装

    Maven 的概念和安装 Maven 是什么 首先 Maven 肯定是一个造福人类的好东西,它可以省去我们构建项目中引入 jar 包时的麻烦,还有利于项目的模块化开发等等等好处.在如今项目中大体都是使 ...

  6. Maven 基本概念——根目录、项目创建、坐标

     1. MavenProjectRoot(项目根目录)   |----src   |     |----main   |     |         |----java ——存放项目的.java文件  ...

  7. Maven基本概念——根目录、项目创建、坐标

    转载来自:https://www.cnblogs.com/zjfjava/p/6817793.html 尊重原创! (一)Maven 基本概念——根目录.项目创建.坐标    1. MavenProj ...

  8. Maven高级:01.maven分模块构建&&02.私服的应用

    IntelliJ IDEA 2018.3.6 x64 07 Maven高级:01.maven分模块构建(上) 07 Maven高级:01.maven分模块构建(中) 07 Maven高级:01.mav ...

  9. Maven基本概念和操作

    最近在学Java,找来一个开源项目练手,它是用 Spring Boot 搭建的框架,于是去学 Spring Boot,然而 Spring Boot 需要有 Spring 框架和 Maven 的使用经验 ...

随机推荐

  1. Arrays.asList()方法注意事项

    1.Arrays.asList()底层数组作为物理层实现.所以返回的List大小不可更改,即不可以做add().remove()操作,并且对List所做的任何变动都会致使原数组发生变动. public ...

  2. PBOC第八部分和第十一部分关于TYPEA总结(二)——传输协议(ISO14443-4)

    二.传输协议(ISO14443-4)(8,P50 11,P30) 1.选择应答请求(RATS) 使用RATS命令和PICC协商通讯的最大帧长度(FSD和FSC).帧等待时间(FWT)和启动帧保护时间( ...

  3. luogu题解 UVA11992 【Fast Matrix Operations】

    题目链接: https://www.luogu.org/problemnew/show/UVA11992 题目大意: 一个r*c的矩阵,一开始元素都是0,然后给你m次三种操作,分别是将一个子矩阵中所有 ...

  4. HTML的学习2(注释)

    <!--链接标签--> <!--核心属性就是href 属性值可以是一个跳转的地址--> <a href="">可点击的文本</a> ...

  5. C# 斐波那契数列 第n项数字/前n项的和

    static void Main(string[] args) { int a = Convert.ToInt32(Console.ReadLine()); //求第n位数字是多少 Console.W ...

  6. macbook打印出现乱码解决方案

    系统偏好设置 --> 打印机与扫描仪 --> + (左下角的加号) --> IP --> 输入打印机的ip地址,然后最下面的 “使用选择” 中选中 普通PCL 打印机,(默认的 ...

  7. 纯净CentOS搭建harbor镜像私仓

    物理宿主机IP:  192.168.1.4 在官网下载 CentOS-7-x86_64-DVD-1810 用Hyper-v建立一代虚机,安装时遇分辨率问题无法继续,需要在选择启动界面按TAB键以编辑启 ...

  8. 第五章· MySQL数据类型

    一.数据类型介绍 1.四种主要类别  1)数值类型 2)字符类型 3)时间类型 4)二进制类型 2.数据类型的 ABC 要素 1)Appropriate(适当) 2)Brief(简洁) 3)Comp ...

  9. bom and dom

    bom:Broswer Object Model: 浏览器对象模型- navigator: 获取客户机的信息(浏览器的信息)document.write(navigator.appName);- sc ...

  10. deep_learning_Function_reduction_indices的用法

    在tf.reduce_sum等函数中,有一个reduction_indices参数,表示函数的处理维度. 当没有reduction_indices这个参数,此时该参数取默认值None,将把input_ ...