什么是POM

POM是project object model 项目对象项目模型的简写,它是Maven项目保存的xml格式的文件,是项目所有事情的一站式服务,在Maven的世界里,一个项目不需要任何代码,只需要一个pom.xml文件

快速概述

下面是POM的元素列表,大家可以先熟悉下,注意,modelVersion的值为4.0.0,这是当前唯一支持的版本

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- The Basics --><groupId>...</groupId><artifactId>...</artifactId><version>...</version><packaging>...</packaging><dependencies>...</dependencies><parent>...</parent><dependencyManagement>...</dependencyManagement><modules>...</modules><properties>...</properties><!-- Build Settings --><build>...</build><reporting>...</reporting><!-- More Project Information --><name>...</name><description>...</description><url>...</url><inceptionYear>...</inceptionYear><licenses>...</licenses><organization>...</organization><developers>...</developers><contributors>...</contributors><!-- Environment Settings --><issueManagement>...</issueManagement><ciManagement>...</ciManagement><mailingLists>...</mailingLists><scm>...</scm><prerequisites>...</prerequisites><repositories>...</repositories><pluginRepositories>...</pluginRepositories><distributionManagement>...</distributionManagement><profiles>...</profiles>
</project>

Maven坐标

何为Maven坐标

Maven坐标类似于平面几何中坐标,它用来唯一 标识构建,这样解决了当需要用到Spring Framework 依赖的时候,大家需要自行去spring官方网站下载,浪费大量时间,因此Maven 就定义了一组规范:世界上任何一个构建都可以使用Maven坐标的唯一标识。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.codehaus.mojo</groupId><artifactId>my-project</artifactId><version>1.0</version>
</project>

上述定义的POM是Maven允许最低的要求,就是说 groupId、artifactId、version这三个元素是必须有的(不过,如果他们是从父级继承的,则不需要显示的定义groupId、version,这种情况子类也是有这两个的信息的,只是通过父类得到的)

  • groupId:定义当前Maven项目隶属的实际项目,这在组织或项目中是唯一的。

    例如:所有Maven的核心组件都可以在groupId下;groupId不一定采用xxx.xxx.xx这种形式,也可以是一个单词,如单元测试junit的groupId就是一个单词 junit;当存储在仓库时,groupId就会被分割为目录例如org.codehaus.mojo,目录结构为 org/codehaus/mojo

    <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.7</version><scope>test</scope>
    </dependency>
    
  • arifactId:钙元素定义实际项目中的一个Maven项目(模块),推荐使用实际项目名称作为artifactId的前缀,例如servlet的artifactId为servlet-api,这样做的好处是方便寻找

    <dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.4</version>
    </dependency>
    
  • version:该元素定义Maven项目当前所处的版本,例如上文中servlet-api的版本是2.4,Maven定义了一头完整的版本规范,一级快照(SNAPSHOT)的概念,后续做详细介绍

  • packaging:钙元素定义Maven项目的打包方式。打包方式通常和最终所生成构建的文件扩展名对应,默认的打包方式jar,当前核心packaging的值有:pomjarmaven-pluginejbwarearrar

DevOps体系之Maven - Maven POM入门相关推荐

  1. Maven五分钟入门

    Maven 五分钟入门 ---本文翻译自Maven官网的Maven in 5 Minutes,稍有删改,所有版权归maven所有.本文只作学习交流之用. 安装 Maven 是一个java工具,因此,在 ...

  2. maven的pom报plugins错误的解决方法.

    maven的pom报plugins错误的解决方法. 参考文章: (1)maven的pom报plugins错误的解决方法. (2)https://www.cnblogs.com/sjcq/p/61940 ...

  3. maven的pom.xml用<exclusion>解决版本问题

    maven的pom.xml用解决版本问题 参考文章: (1)maven的pom.xml用解决版本问题 (2)https://www.cnblogs.com/liu2-/p/9035922.html 备 ...

  4. maven的pom.xml中repositories的作用

    在maven中pom.xml是Maven进行工作的主要配置文件,它的作用包括:配置Maven项目中需要使用的远程仓库,Maven项目的资源依赖关系等.其中pom是Project Object Mode ...

  5. JavaFX maven工程pom文件完整内容

    JavaFX maven工程pom文件完整内容:打包fxml.css等静态资源文件 <project xmlns="http://maven.apache.org/POM/4.0.0& ...

  6. Maven 配置文件 POM 的常用插件配置代码

    Maven 配置文件 POM 的常用插件配置代码 普通 将 Maven 多模块依赖集成打进一个 JAR 包(方法 1) 将 Maven 多模块依赖集成打进一个 JAR 包(方法 2) 生成单入口类 J ...

  7. Maven 配置文件 POM 的常用依赖配置代码

    Maven 配置文件 POM 的常用依赖配置代码 Lombok 测试 Junit 5 日志 Log4j2 & SLF4J & Lombok Spring Bean Spring Boo ...

  8. maven打包pom.xml备忘

    打包生成可执行jar 包 POM.XML <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...

  9. Maven的pom.xml文件详解------The Basics

    转载自  Maven的pom.xml文件详解------The Basics Maven坐标 GroupId.artifactId和version构成了Maven的坐标(groupId和version ...

  10. Maven的pom.xml文件详解------Environment Settings

    转载自  Maven的pom.xml文件详解------Environment Settings Issue Management 使用的缺陷跟踪系统(Bugzilla,TestTrack,Clear ...

最新文章

  1. 售价910元!周志华等人英文新书《演化学习》出炉!
  2. jmeter发送json数据,报405、400错误解决方案
  3. php中RGB转十六进制、十六进制转RGB
  4. vee-validate校验demo
  5. 能源15A1,A2燃烧学期末试题2018-01-02
  6. 下列关于物理层设备的叙述中,错误的是( )
  7. 思维导图一定要用计算机来完成吗,计算机绘制思维导图有什么优势
  8. 普通用户竟这样执行xp_cmdshell存储过程!
  9. 某大型银行深化系统技术方案之十五:服务层之服务调用
  10. 关于新功能研发的一些脑洞
  11. SQL 关于提示SQL Server 2008评估期已过解决办法
  12. ROS采坑日记(3)----在ROS下 编译ORB_SLAM2时遇到问题:[rosbuild] rospack found package ORB_SLAM2 at ........
  13. Centos下yum update与yum upgrade的区别
  14. 2018私塾在线高级java软件架构师实战培训最新
  15. 九九乘法表的简单代码
  16. 【Spring笔记09】Spring中事务传播机制(注解方式)
  17. 增广拉格朗日函数的三种统一公式
  18. synchronized-锁总结
  19. 计算机发展史教学反思,计算机教学反思
  20. Mac 设置 Git 代理

热门文章

  1. 水声通信基本概念汇总(持续更新)
  2. pygame飞机大战 小游戏
  3. element-ui的popover组件没有在正常位置弹出
  4. 自用chrome+油猴脚本,使用迅雷下载百度云大文件,一键离线下载
  5. 【JVM进阶之路】十:JVM调优总结
  6. DX9中如何模拟DX10/11里的ConstantBuffer
  7. 【NetApp】关闭FRU LED告警指示灯
  8. 融云 android 推送图标,如何解决 嵌入融云SDK后, Android 手机收不到消息推送?...
  9. 微信公众号 语音转文字api_终于!微信黑暗模式上线,我的眼睛有救了
  10. 【matplotlib】如何进行颜色设置选择cmap