[Maven实战](7)坐标
在maven为这些构件引入坐标概念之前,我们无法使用不论什么一种方式来唯一标识全部这些构件。
因此,当须要用到Spring Framework依赖的时候。我们通常会去Spring Framework官网寻找;当用到log4j依赖的时候。我们又会去Apache官网去寻找。这样,我们花费了大量的时间在搜索。浏览网页上。
反复的搜索,浏览网页和下载jar文件。这应该交给机器去完毕。机器工作必须基于提前定义的规则。
如今。仅仅要我们提供正确的坐标元素,maven就能找到相应的构件。比方说,当须要使用java5平台上TestNG的5.8版本号时,就告诉maven:"groupId=org.testing;artifactId=testing;version=5.8;classifier=jdk15"。maven就会从仓库中寻找相应的构件供我们使用。或许你会奇怪。maven是从哪里下载构件的呢?答案非常easy,maven内置了一个中央仓库的地址(http://repo.maven.org/maven2),该中央仓库包括了世界上大部分流行的开源项目构件。maven会在须要的时候去那里下载。
<groupId>com.sjf.mavendemo</groupId><artifactId>maven-hello-world</artifactId><version>1.0.0SNAPSHOT</version><packaging>jar</packaging>
- groupId : 定义当前maven项目隶属的实际项目。首先。maven项目和实际项目不一定是一对一的关系。比方SpringFramework这一实际项目,其相应的maven项目会有非常多,如: spring-core,spring-context等。
这是因为maven中模块的概念,因此,一个实际项目往往会被划分成非常多模块。其次。groupId不应该相应项目隶属的组织或公司。原因非常easy。一个组织下会有非常多个实际项目,假设groupId仅仅定义到组织级别,而后面我们会看到。artifactId仅仅能定义maven项目(模块),那么实际项目这个层将难以定义。最后。groupId的表示方式与java包名的表示方式类似,通常与域名反向一一相应。
- artifactId : 该元素定义实际项目中的一个maven项目(模块),推荐的做法是使用实际项目名称作为artifactId前缀。
比方上面实例中的artifactId是mavendemo-hello-world。使用了实际项目名mavendemo作为前缀,这样做的优点是方便寻找实际构件。
在默认情况下,maven生成的构件。其文件名称会以artifactId作为开头。如:mavendemo-hello-world-1.0.0.jar。使用实际项目名称作为前缀之后,就能方便从一个lib目录中找到某个项目的一组构件。
- version : 该元素定义maven项目当前所处的版本号,如:mavendemo-hello-world-1.0.0.jar的版本号是1.0.0。
须要注意的是,maven定义了一套完整的版本号规范,以及快照(SNAPSHOT)的概念。
- packaging : 该元素定义maven项目的打包方式。首先,打包方式通常与所生成构件的文件扩展名相应,如:mavendemo-hello-world.1.0.0.jar的packaging为jar。而使用war打包方式的maven项目。终于生成的构件会有一个.war文件,只是这不是绝对的。
其次。打包方式会影响到构建的生命周期,比方jar打包和war打包会使用不同的命令。
最后。当不定义packaging的时候。maven会使用默认值jar。
- classifier : 该元素用来帮助定义构建输出的一些附属构件。
附属构件与主构件相应,如上例中的主构件是: mavendemo-hello-world-1.0.0.jar,该项目可能还会通过使用一些插件生成如:mavendemo-hello-world-1.0.0-javadoc.jar、mavendemo-hello-world-1.0.0-sources.jar这样一些附属构件,其包括了java文档和源码。
这时候,javadoc和sources就是这两个附属构件的classifier。这样。附属构件也就拥有了自己唯一的坐标。
[Maven实战](7)坐标的更多相关文章
- Maven实战06_坐标和邮件服务模块
1:何为Maven坐标 为了能够自动化地解析任何一个Java构件,Maven就必须要将其唯一标识,这就是依赖管理的底层基础--坐标. 学过数学的人都知道平面直角坐标系,x,y分别为其横,纵坐标,将会在 ...
- Maven实战(六)依赖
我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可. 1. 依赖配置 依赖可以声明如下: <project> ... <dependenci ...
- Maven实战之Quick Start
Introduction Maven是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理.编译.测试到生成报告,再到打包和部署.通过Maven,我们只需要输入简单的命令(如mvn clean i ...
- Maven实战五
转载:http://www.iteye.com/topic/1123232 我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可. 1. 依赖配置 依赖可以声明 ...
- (转)Maven实战(六)依赖
我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可. 1. 依赖配置 依赖可以声明如下: <project> ... <dependenci ...
- 读书笔记-《Maven实战》-2018/4/17
第五章 坐标和依赖 1.如同笛卡尔坐标系一样,Maven也通过坐标三元素定位一个资源. <groupId>com.dengchengchao.test</groupId> &l ...
- Maven实战系列文章目录
Maven实战(一)安装与配置 Maven实战(二)构建简单Maven项目 Maven实战(三)Eclipse构建Maven项目 Maven实战(四)生命周期 Maven实战(五)坐标详解 Maven ...
- maven实战系列
Maven实战(一)安装和配置 Maven实战(二)构建简单Maven项目 Maven实战(三)Eclipse构建Maven项目 Maven实战(四)生命周期 Maven实战(五)坐标详解 Maven ...
- 《Maven实战》
原创作者: 许晓斌 阅读:61148次 评论:19条 更新时间:2011-06-23 你是否早已厌倦了日复一日的手工构建工作?你是否对各个项目风格迥异的构建系统感到恐惧?Maven ...
随机推荐
- js 立即调用的函数表达式
当你声明类似function foo(){}或var foo = function(){}函数的时候,通过在后面加个括弧就可以实现自执行,例如foo(),看代码: // 因为想下面第一个声明的func ...
- eclipse安装checkstyle无法加载到preferences的问题
描述一下问题,eclipse安装checkstyle,不管是在线安装还是下载安装,在preferences都没有checkstyle选项,如下: 然我们要的效果是这样的: 解决方案如下: 1 启动 ...
- 通过扩大IE使用内存,解决skyline在IE下模型不能加载的方法
环境:skyline TerraExploere 6.6.1,win10 专业版 64位,ie 11 情况描述:在ie下浏览三维场景,ie占用内存不断增大并且内存占用固定在一个最高范围内,三维场景中部 ...
- js经典闭包
setTimeout函数之循环和闭包 前言 之前对于setTimeout的一个经典问题的理解总是感到很迷惑,现在好像清晰一点了,所以把我的理解写下来,我对js的理解也不深入,如果有错误,请务必指出.以 ...
- TF30042: The database is full. Contact your Team Foundation Server administrator.
TF30042: The database is full. Contact your Team Foundation Server administrator. 在一个阳光明媚的下午,迁入代码的时候 ...
- Jquery判断Checkbox是否选中三种方法
方法一:if ($("#checkbox-id")get(0).checked) { // do something} 方法二:if($('#checkbox-id').is ...
- WPF 完美截图 <二>
根据WPF 完美截图 <一>总结: 1.BitmapSource与BitmapImage及CorppedBitmap之间的转换 2.中心及边角的模板实现及其拖动 3.除了拖动矩形外区域要实 ...
- 用C#实现DES加密解密解决URL参数明文的问题
啥也不说,直接上代码. 加密解码,封装到一个类,key可以自己修改. using System; using System.Security.Cryptography; using System.Te ...
- Espresso浅析和使用
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ Espresso是一个Google官方提供的Android应用UI自动化测试框架.Google希望,当Android的开发者利用Espress ...
- 【朝花夕拾】朝花夕拾-Robot Framework实战演练之开篇
(原创文章,转载请注明出处.) 开博了,简单感慨两句. 前些年一直在做质量体系建设及团队管理的事,忽略了对测试技术热度的保持,这两年有幸重回开发测试第一线,颇感欣喜. 近期随着公司新业务的开展,需要快 ...