maven将项目抽象成一个模型,pom.xml为项目模型对象的描述文件。

此文件中的一些设置项如下:

一、maven模型版本,4.0.0基本稳定

<modelVersion>4.0.0</modelVersion>

二、项目信息,也称作坐标

<groupId>项目所属组织</groupId>
<artifactId>项目或模块名称</artifactId>
<version>项目版本</version>

0.0.1.SNAPSHOT 表示最新版本的快照,表示将频繁更新,不稳定。

三、项目的构建信息,maven插件

<build><plugins><!-- 指定编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><!-- 设置编译插件信息 --><configuration><!-- 编译时的jdk版本--><source>1.8</source><!-- 运行时的jdk版本--><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>

五、依赖

通常我们的项目需要引入第三方库,我们只需要添加第三方库的坐标即可。dependencies可以包含多个dependency。

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency>
</dependencies>

scope元素是表示该插件或依赖的作用范围,有如下取值:

  1. compile        默认值,在工程的生命周期的各个阶段都有效
  2. test               仅在测试阶段有效
  3. provided       表示在生产环境中会提供,不需要打包此插件或依赖。

四、全局变量

1、maven内置的全局变量

例如指定编译版本和编码,在properties标记中添加变量,标记中间的变量值。

内置全局变量的名称固定,由maven工具默认调用。

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.build.outputEncoding>UTF-8</project.build.outputEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target>
</properties>

2、自定义全局变量

例如自定义全局变量的名称是junit.version,表示junit版本号,在properties标记中添加

<properties><junit.version>4.11</junit.version>
</properties>

使用自定义全局变量:${变量名}

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope>
</dependency>

六、父工程

作用:解决各模块的版本冲突,统一管理版本。子工程可以继承父工程的依赖版本。

1、创建一个maven父工程,打包方式为pom

在父工程中统一配置插件管理

<dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>
</dependencyManagement>

2、在子工程声明引用的父工程

<parent><groupId>父工程组织名</groupId><artifactId>父工程名</artifactId><version>父工程版本</version><relativePath>父工程pom.xml的相对路径</relativePath>
</parent>

子工程的与父工程相同的依赖可以不用再声明版本

    <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency></dependencies>

3、先安装父工程,再安装子工程

七、(聚合)多模块

作用:一键安装各个模块工程

在总工程里面加入各个模块。

 <modules><module>../工程1</module><module>../工程2</module></modules>

maven的pom详解相关推荐

  1. 发布个人项目jar包到maven中央仓库详解

    发布个人项目jar包到maven中央仓库详解 1.在sonatype提交发布工单(Issue) sonatype是由社区支持的开源项目托管服务(Open Source Project Reposito ...

  2. Eclipse中Maven常用命令以及Maven生命周期详解

    Eclipse中maven常用的命令 在某一个maven项目右键快捷方式,然后点击Run As就可以发现几个Maven的命令: Maven Build: 这个命令用于编译Maven工程,执行命令后会在 ...

  3. IntelliJ IDEA for Mac中的Maven操作窗口详解

    文章目录 简介 操作按钮详解 Reload All Maven Projects Generate Sources and Update Folders For All Projects Downlo ...

  4. 使用nexus搭建maven私服教程详解

    私服是什么 私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视.Nexus是常用的私用Maven服务器,一般是公司内部使用.下载地址是http://www.sona ...

  5. maven常用插件详解

    1. 简介 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说, ...

  6. Maven——常用命令详解

    常用命令 mvn –version mvn -v 显示maven安装版本信息 mvn clean 清理项目打包文件,即项目下的target目录 mvn compile 编译项目下的src/main/J ...

  7. IntelliJ IDEA for Mac中Maven菜单用法详解

    Reload project 你如果修改了 pom.xml 文件,可以点击这个按钮重载 Maven 项目,重载过程会引入新的依赖,会删除不需要的依赖. Generate Sources and Upd ...

  8. Maven的scope详解

    文章目录 依赖范围介绍 compile test provided runtime system import 依赖传递 依赖范围与 classpath 的关系表 参考 依赖范围介绍 maven 项目 ...

  9. maven的profile详解

    详细内容请见:https://www.cnblogs.com/wxgblogs/p/6696229.html Profile能让你为一个特殊的环境自定义一个特殊的构建:profile使得不同环境间构建 ...

  10. maven打包配置详解

    用了几个月的maven了 , 其实主要的话就两方面 (1)用maven管理一些jar包,(2)构建打包项目 maven有三种生命周期, clean,default,site clean  就是清除项目 ...

最新文章

  1. PyTorch开源物体检测工具包
  2. 面试官:说说Java中java.lang.Void和void有什么作用和区别?
  3. 从浏览器地址栏输入url到显示页面的步骤
  4. Replace Parameter with Methods(以函数取代参数)
  5. SQLServer2000同步复制技术实现步骤作者
  6. 方法 注释_在IDEA中配置类和方法的文档注释
  7. 数据库表存放在哪里_一文了解数据库和数据仓库
  8. Java设计模式之迭代子模式
  9. Windows Phone 7 优秀开源项目概览 来源:http://www.cnblogs.com/porscheyin/archive/2010/12/15/1906476.html...
  10. jQuery - 通过文本描述设置选择控件的选定值
  11. 数组作业:例题5.1.一个10个元素一维数组的赋值与遍历
  12. 安装了最新版本的java 用友nc打不开_NC无法安装客户端插件,不能进入用友NC系统登陆界面...
  13. java生成有序的序号,java生成序号
  14. 基于阿里云CentOS进行Docker尝试
  15. 泰坦尼克号生存情况预测
  16. simulink他励直流电动机串电阻启动仿真
  17. 电信iptv信号接入服务器,IPTV发展需国家明确电信与广电交叉进入政策
  18. Unity-网络开发(二)
  19. UI设计师怎样提升品牌能力?
  20. 【无标题】我的《计算机网络》学习笔记:第一篇、计算机网络概述

热门文章

  1. 2019Thinking(上) -- 一个前端开发者的个人思考
  2. Ubuntu18.04解决Teamview检测为商用问题
  3. HDB3码的编码解释(简单粗暴)
  4. JavaScript实用手册
  5. Java之链表的反转
  6. Spark机器学习过程梳理
  7. 测试工具-Jira和禅道数据库分析
  8. win10 动态磁盘 linux,win10 动态磁盘 无效,win10动态磁盘不能识别
  9. flash插件java_[Java教程]SWFObject Flash 增强插件
  10. Python 欧卡2导入音乐 批量转ogg格式