maven |
您所在的位置:网站首页 › pom模型指标的三个基本公式是什么 › maven |
文章目录
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)、site3.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创建项目
指定了当前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 声明项目中所使用的插件 5.6 pluginManagement:作用类似于dependencyManagement, 定义子项目中的插件。 这样在子项目中使用插件时,可以不用指定其版本,由父项目统一进行管理。 5.7 parent:父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 version。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |