maven

您所在的位置:网站首页 pom模型指标的三个基本公式是什么 maven

maven

2024-07-11 13:04:16| 来源: 网络整理| 查看: 265

文章目录 1.什么是maven:简而言之:友情提示: 2.maven的特点:3.关于maven3.1 maven坐标三要素:Group id、Artifact id、Version3.2 maven的三套生命周期:clean、default(build)、site3.3 maven创建项目3.4 第一个maven项目3.5 maven项目的目录结构 4.pom.xml4.1 什么是pom:4.2 基本样子4.3 基本节点的含义:4.4 dependencies和dependency的讲解:4.4.1 举个例子4.4.2 dependcy:4.4.3 利用maven的时候产生jar冲突: 5.pom.xml中不太常用的节点5.1 dependencyManagement:5.2 modules:5.3 properties:声明一些常量:设置编码集,设置某一系列类型的框架的版本5.4 build:构建项目需要的信息5.5 plugin:5.6 pluginManagement:5.7 parent:父项目的坐标。

1.什么是maven:

中文意思为“知识的积累”,是Apache基金会出产的一个进行项目构建的工具,其核心是pom.xml(pom=Project Object model 项目对象模型),定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等。

简而言之:

Maven是Java平台下的一款项目构建和依赖管理(统一管理jar包)的自动化管理工具。

友情提示:

项目构建:将我们的源代码、配置文件变成可执行的war包或者jar包。 依赖管理(统一管理jar包):项目需要正常运行,必须依赖一些第三方的jar包,对于这些第三方的jar包的管理,可以认为就是依赖的管理。

2.maven的特点:

2.1 原来的项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/lib 项目下,而借助Maven,可以将jar包仅

仅保存在“仓库”中,有需要使用的工程只需要“引用”这个文件,并不需要重复复制到工程中。

2.2 原来的项目中所需要的jar包都是提前下载好的,而Maven在联网状态下会自动下载所需要的jar包。首先在本地

仓库中找,找不到就在网上进行下载。

2.3 原来的项目中一个jar包所依赖的其他jar包必须手动导进来,而Maven会自动将被依赖的jar包导进来。

2.4 原来的项目一个项目就是一个工程,而借助Maven可以将一个项目拆分成多个工程。

3.关于maven 3.1 maven坐标三要素:Group id、Artifact id、Version Group Id:意思为公司名或者组织名 com.baidu.bj org.apache.uk 例子:pro.yf.bj Artifact Id:项目的名字 例子:Mavne_HelloWorld Version:版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本 友情提示:上面的这三个因素构成了一个项目的基本信息(坐标),这是很重要的 Package:项目中源代码存放的包的路径 3.2 maven的三套生命周期:clean、default(build)、site

3.2.1 Clean : 在进行真正的构建之前进行一些清理工作。 简称 “清理”,且包含三个phase(阶段)。

1)pre-clean:执行清理前需要完成的工作 2)clean:清理上一次构建生成的文件 3)post-clean:执行清理后需要完成的工作

3.2.2 Default : 定义了真正构建时所需要执行的所有步骤:,编译,测试,打包,部署等等。 简称"构建项目",且包含以下几个重要的阶段

1)validate:验证工程是否正确,所有需要的资源是否可用。 2)compile:编译项目的源代码。 3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。 4)Package:把已编译的代码打包成可发布的格式,比如jar。 5)integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。 6)verify:运行所有检查,验证包是否有效且达到质量标准。 7)install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。 8)Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

3.2.3 Site : 生成项目报告建立和发布项目站点,且包含以下几个重要的阶段

1)pre-site:生成项目站点之前需要完成的工作 2)site:生成项目站点文档 3)post-site:生成项目站点之后需要完成的工作 4)site-deploy:将项目站点发布到服务器 3.3 maven创建项目

eclipse中创建maven项目 eclipse中创建maven项目

3.4 第一个maven项目

第一个maven项目

3.5 maven项目的目录结构

maven项目的目录结构

4.pom.xml 4.1 什么是pom: pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配 置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性, 以及其他所有的项目相关因素 简而言之:就是项目的配置清单 4.2 基本样子 4.3 基本节点的含义: modelVersion

指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0

groupId:项目或者组织的唯一标志,并且配置时生成路径也是由此生成,如org.myproject.mojo生成的相对路径为:/org/myproject/mojo artifactId:项目的通用名称 version:项目的版本 packaging:打包机制,如pom,jar(默认的),maven-plugin,ejb,war,ear,rar,par name:项目的名称 url:项目开发团队的网址,无关紧要,可以省略 description:项目描述 4.4 dependencies和dependency的讲解:

友情提示:前者包含后者。前面说了,Maven的一个重要作用就是统一管理jar包,为了一个项目可以build或运行,项目中不可避免的,会依赖很多其他的jar包,在Maven中,这些依赖就被称为dependency

4.4.1 举个例子

比方说我的项目中用到了MyBatis,那么可以这么配置:我们可以去https://mvnrepository.com/这个网站去直接下载

org.mybatis mybatis 3.2.5 4.4.2 dependcy:

表示出依赖关系,即一个dependcy就是一种jar包里面的属性值得意思:

type:默认为jar类型,常用的类型有:jar,ejb-client,test-jar...,可设置plugins中的extensions值为true后在增加 新的类型, scope:是用来指定当前包的依赖范围,maven的依赖范围常有以下四种值: compile(编译范围) provided(已提供范围) runtime(运行时范围) test(测试范围) system(系统范围) optional:设置指依赖是否可选,默认为false,即子项目默认都继承,为true,则子项目必需显示的引入,与dependencyManagement里定义的依赖类似 。 exclusions:如果X需要A,A包含B依赖,那么X可以声明不要B依赖,只要在exclusions中声明exclusion. exclusion:是将B从依赖树中删除,如上配置,alibaba.apollo.webx不想使用com.alibaba.external ,但是alibaba.apollo.webx是集成了com.alibaba.external,r所以就需要排除掉. version;版本号 systempath:当scope的值为system时,提供相应的路径 简而言之: 内部包含若干 { groupId, artifactId,version 三个基本属性 /*1.这三个是最常用的,2只要有这三个就能基本上能用了*/ type :默认jar类型 scope: 当前包依赖类型 optional: false时, 继承这个项目所有的子项目。 true时, 该项目的子项目需要显式引入 exclusion :排除某项 } 4.4.3 利用maven的时候产生jar冲突:

maven的exclusion解决版本问题:用maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用来排除一些不需要同时下载的依赖jar

可以参考如图:maven的exclusion解决jar冲突.png maven的exclusion解决jar冲突

5.pom.xml中不太常用的节点 5.1 dependencyManagement: 通常在最顶层父pom中(在使用maven的继承特性的使用会用到),让所有在子项目中引用一个依赖而不用显式地列出版本号。 5.2 modules: 将项目分块,达到高内聚,低耦合的目的(本身功能很强大,不用再引入其他类) 5.3 properties:声明一些常量:设置编码集,设置某一系列类型的框架的版本 如: UTF-8 3.2.3.RELEASE 引用时 : ${file.encoding} ${spring.version} 也可以通过project.xx引用项目的定义的属性,例如: ${project.groupId} 引用当前pom定义的groupId 5.4 build:构建项目需要的信息 defaultGoal 默认目标 directory 制定buildtarget目标下的目录 5.5 plugin:

声明项目中所使用的插件

5.6 pluginManagement:

作用类似于dependencyManagement, 定义子项目中的插件。 这样在子项目中使用插件时,可以不用指定其版本,由父项目统一进行管理。

5.7 parent:父项目的坐标。

如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 version。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭