1.为什么要定义Maven坐标 
     在我们开发Maven项目的时候,需要为其定义适当的坐标,这是Maven强制要求的。在这个基础上,其他Maven项目才能应用该项目生成的构件。

2.Maven坐标详解

Maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是groupId,artifactId,version,packaging,class-sifer。下面是一组坐标定义:

Xml代码  
  1. <groupId>com.mycompany.app</groupId>
  2. <artifactId>my-app</artifactId>
  3. <packaging>jar</packaging>
  4. <version>0.0.1-SNAPSHOT</version>

下面讲解一下各个坐标元素:

groupId :定义当前Maven项目隶属的实际项目。首先,Maven项目和实际项目不一定是一对一的关系。比如SpringFrameWork这一实际项目,其对应的Maven项目会有很多,如spring-core,spring-context等。这是由于Maven中模块的概念,因此,一个实际项目往往会被划分成很多模块。其次,groupId不应该对应项目隶属的组织或公司。原因很简单,一个组织下会有很多实际项目,如果groupId只定义到组织级别,而后面我们会看到,artifactId只能定义Maven项目(模块),那么实际项目这个层次将难以定义。最后,groupId的表示方式与Java包名的表达方式类似,通常与域名反向一一对应。

artifactId : 该元素定义当前实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀。比如上例中的my-app。

version : 该元素定义Maven项目当前的版本

packaging :定义Maven项目打包的方式,首先,打包方式通常与所生成构件的文件扩展名对应,如上例中的packaging为jar,最终的文件名为my-app-0.0.1-SNAPSHOT.jar。也可以打包成war, ear等。当不定义packaging的时候,Maven 会使用默认值jar

classifier: 该元素用来帮助定义构建输出的一些附件。附属构件与主构件对应,如上例中的主构件为my-app-0.0.1-SNAPSHOT.jar,该项目可能还会通过一些插件生成如my-app-0.0.1-SNAPSHOT-javadoc.jar,my-app-0.0.1-SNAPSHOT-sources.jar, 这样附属构件也就拥有了自己唯一的坐标

maven入门(7)maven项目(组件)的坐标相关推荐

  1. 【Maven入门】Maven概述

    1.定义 Maven 作为 Apache 的一个开源项目,旨在给项目管理提供更多的支持,它最早的意图只是为了给 apache 组织的几个项目提供统一的开发.测试.打包和部署,能让开发者在多个项目中方便 ...

  2. 【maven】maven入门以及maven常用命令

    在企业中的开发对应三个步骤: 开发                   ----->测试       -->发布 开发环境         测试环境         生产环境 硬编码:通过 ...

  3. Maven入门学习,安装及创建项目

    一.maven介绍: 1.maven是一个基于项目对象模型(POM Project Object Model),通过配置文件管理项目的工具(项目管理工具). 2.maven主要功能:发布项目(从编译到 ...

  4. Maven入门教程(十七)-Maven多Moudle项目创建

    本章节介绍如何创建一个多模块的Maven项目,我们先从下图看下创建的项目整体结构 项目首先有一个父工程,主要用于锁定子工程的版本.设置公共的插件. 多个子工程继承父工程,并且子工程之间有依赖关系,如上 ...

  5. Maven学习(一)——Maven入门

    为什么80%的码农都做不了架构师?>>>    一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服 ...

  6. maven整合SSM搭建项目

    Maven整合SSM搭建项目 目录 一.概要. 2 1.1 Maven2 1.1.1 Maven的基本概念. 2 1.1.2 Maven的核心概念. 2 1.1.2 Maven的目标. 5 1.1.3 ...

  7. Maven入门指南⑦:Maven的生命周期和插件

    Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...

  8. Maven学习总结(一)——Maven入门

    2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(一)--Maven入门 一.Maven的基本概念 Maven(翻译为"专家",&quo ...

  9. Maven入门教程(一)

    1.Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的.Maven是一个项目管理工具,它包含了一个项目对象模型 (Projec ...

  10. Maven系列学习(二)Maven使用入门

    Maven使用入门 通过上一节的学习,我们已经了解和配置好了Maven,接下来需要编写代码了 1.POM(Project Object Model,项目对象模型) 和Make的Makefile类似,M ...

最新文章

  1. m_Orchestrate learning system---九、在无法保证是否有图片的情况下,如何保证页面格式...
  2. 肝!用 Highcharts 绘制饼图,也很强大
  3. 《人月神话》阅读笔记--02
  4. LabVIEW串口接收实例
  5. Linux Free命令与cache和buffer的主要区别
  6. 前端学习(3290):object.define3
  7. win2008启动计算机应用配置,[计算机软件及应用]WIN2008_NAP服务器配置详解.doc
  8. 解决Linux中crontab不执行ntpdate问题
  9. 知识竞赛现场管理系统安装配置及使用疑难问题汇编
  10. 微信小程序商城毕业设计毕设作品(5)开题报告答辩PPT
  11. 最新MTK刷机工具资料(SP_Flash_Tool_exe_Windows_v5.1844.00.000)
  12. 创建CrossApp工程
  13. 【Request】全面总结并理解request
  14. python 控制 窗口 控件_【python】Tkinter可视化窗口(一)
  15. 一级路由器映射二级路由器端口映射
  16. Windows_Program_Via_C_Translate_Win32编程的背景知识/基础知识_包括基本输入输出机制介绍...
  17. 高通SDX12:Keypad按键相关(PowerKey、Reset)
  18. mapreduce出现大量task被KILLED_UNCLEAN的3个原因
  19. PAT乙级题目答案汇总 PAT (Basic Level) Practice (中文)
  20. java数学建模,什么是数学建模- -

热门文章

  1. 笔记本删除隐藏分区 释放固态硬盘空间
  2. FCKeditor 上传图片和浏览服务器时提示请先登陆的解决办法
  3. centos7.9使用rpm安装Jenkins_亲测成功---持续集成部署Jenkins工作笔记0022
  4. 大数据之-入门_大数据发展前景---大数据之hadoop工作笔记0005
  5. MFC工作笔记0009---VC++中 PostMessage和SendMessage的区别
  6. 找不到该项目,请确认该项目的位置的解决办法
  7. 根据控件ID得到句柄
  8. delphixe2 SIZE_T=NativeUInt类型
  9. ftk学习记(image显示篇)
  10. 一步一步写算法(之 A*算法)