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

2019-12-02 0 By admin

POM 文件中用于编辑工程构建过程的配置模块,是由 BUILD 元素配置的。其编辑工程构建过程中需要配置的资源信息和构建插件信息。

一、build 的基本配置元素

  1. directory: 构建产生的所有文件存放的目录。
  2. finalName: 产生的构件的文件名,默认值是${artifactId}-${version}。
  3. filters: 当filtering开关打开时,使用到的过滤器属性文件列表。
  4. sourceDirectory: 设置项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。
  5. scriptSourceDirectory: 设置项目脚本源码目录,该目录和源码目录不同:绝大多数情况下,该目录下的内容会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。
  6. testSourceDirectory: 设置项目单元测试使用的源码目录,当测试项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。
  7. outputDirectory: 被编译过的应用程序 class 文件存放的目录。
  8. testOutputDirectory: 被编译过的测试class文件存放的目录。
  9. defaultGoal: 当项目没有规定目标(Maven2 叫做阶段)时的默认值。

二、resources 项目相关的资源信息

  1. resources: 这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。相似的元素还有testResources。
  2. resource: 这个元素描述了项目相关或测试相关的所有资源路径。
  3. irectory: 描述存放资源的目录,该路径相对POM路径。
  4. targetPath: 描述了资源的目标路径。该路径相对target/classes目录。
  5. filtering: 是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。
  6. includes: 包含的模式列表,例如**/*.xml。
  7. excludes: 排除的模式列表,例如**/*.xml。

三、plugins 项目构建过程中使用的插件

plugin: 包含一个插件信息。

  1. groupId: 插件的全球唯一标识符。
  2. artifactId: 插件的标识符。
  3. version: 插件的版本。
  4. extensions: 是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。
  5. executions: 在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。
  6. -execution: execution元素包含了插件执行需要的信息。
  7. —id: 行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标。
  8. —phase: 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段。
  9. —goals: 配置的执行目标。
  10. —inherited: 配置是否被传播到子POM。
  11. —configuration: 作为DOM对象的配置。
  12. dependencies: 项目引入插件所需要的额外依赖。
  13. -dependency: 参见dependencies/dependency元素。
  14. inherited: 任何配置是否被传播到子项目。
  15. configuration: 作为DOM对象的配置。

四、extensions 构建过程中的扩展

  1. extensions: 使用来自该项目的一系列构建扩展。
  2. -extension: 描述使用到的构建扩展。
  3. —groupId: 构建扩展的groupId。
  4. —artifactId: 构建扩展的artifactId。
  5. —version: 构建扩展的版本。