Maven 工程POM文件编写(项目构建配置元素)

2019-10-08 0 By admin

一、父项目的坐标

  1. parent:如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 version。
  2. –artifactId:#被继承的父项目的构件标识符
  3. –groupId:#被继承的父项目的全球唯一标识符
  4. –version:#被继承的父项目的版本
  5. –relativePath:#父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。

二、项目的依赖

  1. dependencies: #该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载
  2. –dependency:
  3. —-groupId: org.apache.maven
  4. —-artifactId: maven-artifact
  5. —-version: 3.8.1
  6. —-type: jar #依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。
  7. —-classifier: #依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。
  8. —-scope: test #依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。
  9. —-systemPath: #仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。
  10. —-exclusions: #当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。
  11. ——exclusion:
  12. ——–artifactId: spring-core
  13. ——–groupId: org.springframework
  14. —-optional: true #可选依赖;可选依赖阻断依赖的传递性。

scope: 依赖范围,配置参数介绍

  1. – compile :默认范围,用于编译
  2. – provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
  3. – runtime: 在执行时需要使用
  4. – test: 用于test任务时使用
  5. – system: 需要外在提供相应的元素。通过systemPath来取得
  6. – systemPath: 仅用于范围为system。提供相应的路径
  7. – optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用

三、项目 dependencyManagement 配置

  1. dependencyManagement: #继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和artifact ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息
  2. –dependencies:
  3. —-dependency: ##参见 dependencies/dependency元素

四、项目构建环境条件

  1. prerequisites: #描述了这个项目构建环境中的前提条件。
  2. –maven: #构建该项目或使用该插件所需要的Maven的最低版本

五、项目模块配置

  1. modules: #模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径
  2. repositories: #发现依赖和扩展的远程仓库列表
  3. –repository: #包含需要连接到远程仓库的信息
  4. —-releases: #如何处理远程仓库里发布版本的下载
  5. ——enabled: #true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。
  6. ——updatePolicy: #该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。
  7. ——checksumPolicy: #Maven验证构件校验文件失败时该怎么做:ignore(忽略),fail(失败),或者warn(警告)
  8. —-snapshots: #如何处理远程仓库里快照版本的下载。
  9. ——enabled:
  10. ——updatePolicy:
  11. ——checksumPolicy:
  12. —-id: banseon-repository-proxy #远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库
  13. —-name: banseon-repository-proxy #远程仓库名称
  14. —-url: http://192.168.1.169:9999/repository/ #远程仓库URL,按protocol://hostname/path形式
  15. —-layout: default #用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)

六、项目插件配置

  1. pluginRepositories: #发现插件的远程仓库列表,这些插件用于构建和报表
  2. –pluginRepository: #包含需要连接到远程插件仓库的信息.参见repositories/repository元素

七、构建项目需要的信息 Build

Maven 工程中使用 POM 文件编辑工程构建过程

八、根据环境参数,调整构建过程 Profiles

Maven 服务中配置构建过程Profiles 配置说明