![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Maven
c.
这个作者很懒,什么都没留下…
展开
-
Maven的聚合与继承
聚合如果我们想要一次构建两个项目,而不是到两个模块的目录下分别执行mvn命令,Maven聚合(或者称为多模块)这一特性就是为该需求服务的。 假设现在有account-email和account-persist两个模块。为了能够使用一条命令就能够构建account-email和account-persist两个模块,我们需要创建另一个新模块account-aggregator,然后通过该模块构建整个原创 2017-06-24 17:38:43 · 364 阅读 · 0 评论 -
Maven的插件
插件目标Maven的核心仅仅定义了抽象的生命周期,具体的任务是交由插件完成的,插件以独立的构建形式存在,因此,Maven核心的分发包不到3MB的大小,Maven会在需要的时候下载并使用插件。对于插件本身,为了能够复用代码,他往往能完成多个任务。例如maven-dependency-plugin,他能够基于项目依赖做很多事情。能够分析项目依赖,找出潜在的无用依赖,列出依赖树,帮助分析依赖来源等等。这些原创 2017-06-23 16:08:19 · 295 阅读 · 0 评论 -
Maven的生命周期
什么是生命周期Maven的生命周期就是为了对所有的构建过程进行抽象和统一。Maven从大量项目和构建工具中学习和反思,然后总结了一套高度完善的、易扩展的生命周期。这个生命周期包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。几乎所有的项目构建,都能映射到这样一个生命周期上。 Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际工作,在Mave原创 2017-06-22 23:06:15 · 518 阅读 · 0 评论 -
Maven的排除依赖、归类依赖、优化依赖
排除依赖传递性依赖会给项目隐式地引入很多依赖,着极大简化了项目依赖的管理,但是有些时候这种特性也会带来问题。例如,当前项目有一个第三方依赖,而这个第三方依赖由于某些原因依赖了另一个类库的SNAPSHOT版本,name这个SNAPSHOT就会成为当前项目的传递性依赖,而SNAPSHOT的不稳定性会直接影响到当前的项目。这时就需要排除掉该SNAPSHOT,并且在当前项目中声明该类库的某个正式发布的版本。原创 2017-06-20 21:08:21 · 39786 阅读 · 2 评论 -
Maven依赖调解和可选依赖
Maven依赖调解Maven引入的传递性依赖机制,一方面大大简化和方便了依赖声明,另一方面,大部分情况下我们只需要关心项目的直接依赖是什么,而不用考虑这些直接依赖会引入什么传递性依赖。但有时候,当传递性依赖造成问题的时候,我们就需要清楚的知道该传递性依赖是从哪条依赖路劲引入的。例如,项目A有这样的依赖关系:A->B->C->X(1.0)、A->D->X(2.0),X是A的传递性依赖,但是两条依赖路径原创 2017-06-20 16:45:05 · 1787 阅读 · 0 评论 -
Maven的传递性依赖
传递性依赖考虑一个基于Spring Framework的项目,如果不使用maven,那么在项目中就需要手动下载相关依赖。由于Spring Framework又会依赖于其他开源类库,因此实际中往往会下载一些很大的包,包含Spring Framework的jar包,以及所有依赖他的其他jar包,这样做往往会引入很多不必要的依赖包。或者还可能会造成很多错误信息,这是一个非常麻烦的事情。Maven的传递机制原创 2017-06-20 15:34:47 · 702 阅读 · 0 评论 -
Maven依赖的配置
简单的依赖配置一个依赖声明可以包含以下元素: 根元素project下的dependencies可以包含一个或者多个dependency元素,可以声明一个或者多个项目依赖。每个依赖可以包含的元素有:groupId、artifactId和version:依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,maven根据坐标才能找到需要的依赖。type:依赖的类型,对应项目坐标定义的packa原创 2017-06-20 15:01:35 · 578 阅读 · 0 评论 -
Maven中的坐标和仓库
构件构件通过坐标作为其唯一标识,任何一个构件都必须明确定义自己的坐标。坐标、groupId:定义当前maven项目隶属的实际项目。通常是域名反向artifactId:该元素定义实际项目中的一个maven项目(模块),推荐做法是使用实际的项目名作为artifactId的前缀version:定义maven项目当前所处在的版本packaging:该元素定义maven项目的打包方式,打包方式通常与所原创 2017-06-06 16:03:31 · 545 阅读 · 0 评论 -
Maven自动创建目录骨架
archetype插件用于创建符合maven规定的目录骨架maven的目录规定 第一种方式首先创建一个新项目 进入该新文件夹的根目录中 使用命令mvn archetype:generate(ps:第一次运行需要一点时间下载其他文件和依赖jar包) 下载的过程中可能会卡在如下地方: 为啥卡在generating project in interactive mode,因为请求从远程服务器上取原创 2017-06-06 15:04:41 · 5070 阅读 · 2 评论 -
Maven常用的构建命令
maven常用的构建命令mvn -v 查看maven版本compile 编译test 测试package 打包clean 删除targetinstall 安装jar包到本地仓库mvn clean命令可以发现target文件被删除了。 mvn install命令创建一个新的项目,并在目录下创建一个Speak.java文件 文件内容如下:package com.cc.maven02.ut原创 2017-06-05 21:57:34 · 884 阅读 · 0 评论 -
Maven快速入门
maven介绍及环境搭建Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。下载maven打开http://maven.apache.org/download.cgi#下载mavenmaven的目录结构下载完之后解压得到maven的目录结构: -bin目录包含mvn的运行脚本 -boot目录包含一个类加载器的框架 -conf是配置文件的原创 2017-06-05 21:22:54 · 369 阅读 · 0 评论