调用者:集成测试

全名

org.apache.maven.plugins:maven-invoker-plugin:1.5:integration-test

说明

搜索集成测试 Maven 项目,并执行每个项目,在项目目录中收集日志,构建永远不会失败,旨在与验证 mojo 结合使用。

属性

  • 需要执行 Maven 2.0 项目。
  • 需要范围内工件的依赖关系解析:test.
  • 自版本:1.4.
  • 默认绑定到生命周期阶段:integration-test.

可选参数

姓名 类型 自从 描述
addTestClassPath boolean 1.2 一个标志,被测项目的测试类路径是否应该包含在构建前/构建后脚本的类路径中。如果设置为false,则脚本解释器的类路径仅包含Maven Invoker 插件的运行时依赖项。如果设置 true,项目的测试类路径将被添加到解释器类路径中。除其他外,此功能允许脚本从项目的测试源访问实用程序类。
默认值为false
克隆所有文件 boolean 1.2 将 IT 项目从参数 projectsDirectory 指定的目录复制到 cloneProjectsTo 指定的目录(例如.svnCVS*~等)时,通常会排除一些文件。将此参数设置为 true将导致所有文件复制到 cloneProjectsTo 目录。
默认值为false
克隆项目到 File 1.1 在执行之前应将项目克隆到的目录。如果未指定,则每个集成测试都将在找到相应 IT POM 的目录中运行。在这种情况下,您很可能希望将 SCM 配置为忽略targetbuild.log位于测试的基本目录中。
调试 boolean 1.4 是否在构建输出中显示调试语句。
默认值为false
禁用报告 boolean 1.4 禁用生成报告生成的标志。
默认值为false
编码 String 1.2 构建前/构建后脚本的文件编码以及目标和配置文件的列表文件。
默认值为${project.build.sourceEncoding}
过滤器属性 Map 1.3 将用于过滤 POM 和目标文件中的令牌的附加属性列表。
目标 List 1.4 每个项目要执行的目标列表。默认值为: package
目标文件 String 1.4 已弃用。从 1.2 版开始,应该使用invoker.goals参数指定的属性文件中 的密钥。默认值为:。invokerPropertiesFile
goals.txt
插值属性 Properties 1.1 已弃用。从 1.3 版开始,filterProperties 应改为使用该参数。
调用者属性文件 String 1.2 包含用于指定单个 Maven 调用设置的属性的可选项目特定文件的名称。文件中存在的任何属性都将覆盖插件配置中的相应设置。属性的值被过滤,并且可以使用表达式 ${project.version}来引用项目属性或参数中的值filterProperties。下面的代码片段描述了支持的属性:
# A comma or space separated list of goals/phases to execute, may
# specify an empty list to execute the default goal of the IT project
invoker.goals = clean install

# Optionally, a list of goals to run during further invocations of Maven
invoker.goals.2 = ${project.groupId}:${project.artifactId}:${project.version}:run

# A comma or space separated list of profiles to activate
invoker.profiles = its,jdk15

# The path to an alternative POM or base directory to invoke Maven on, defaults to the
# project that was originally specified in the plugin configuration
# Since plugin version 1.4
invoker.project = sub-module

# The value for the environment variable MAVEN_OPTS
invoker.mavenOpts = -Dfile.encoding=UTF-16 -Xms32m -Xmx256m

# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
invoker.failureBehavior = fail-never

# The expected result of the build, possible values are "success" (default) and "failure"
invoker.buildResult = failure

# A boolean value controlling the aggregator mode of Maven, defaults to "false"
invoker.nonRecursive = true

# A boolean value controlling the network behavior of Maven, defaults to "false"
# Since plugin version 1.4
invoker.offline = true

# The path to the properties file from which to load system properties, defaults to the
# filename given by the plugin parameter testPropertiesFile
# Since plugin version 1.4
invoker.systemPropertiesFile = test.properties

# An optional human friendly name for this build job to be included in the build reports.
# Since plugin version 1.4
invoker.name = Test Build 01

# An optional description for this build job to be included in the build reports.
# Since plugin version 1.4
invoker.description = Checks the support for build reports.

# A comma separated list of JRE versions on which this build job should be run.
# Since plugin version 1.4
invoker.java.version = 1.4+, !1.4.1, 1.7-

# A comma separated list of OS families on which this build job should be run.
# Since plugin version 1.4
invoker.os.family = !windows, unix, mac

# A comma separated list of Maven versions on which this build should be run.
# Since plugin version 1.5
invoker.maven.version = 2.0.10+, !2.1.0, !2.2.0

默认值为invoker.properties
调用者测试 String 1.1 要运行的项目名称的逗号分隔列表。指定此参数以按文件名运行单个测试,覆盖 setupIncludespomIncludespomExcludes参数。您在此处指定的每个模式都将用于创建格式为 的包含模式 ,因此您只需键入以在和 中运行构建。${projectsDirectory}/pattern-Dinvoker.test=FirstTest,SecondTest${projectsDirectory}/FirstTest${projectsDirectory}/SecondTest
主页 File 1.3 JAVA_HOME用于分叉 Maven 调用的环境变量。默认为当前 Java 主目录。
本地存储库路径 File 1.4 用于缓存工件的本地存储库。强烈建议指定一个独立存储库的路径,例如 ${project.build.directory}/it-repo. 否则,将使用您的普通本地存储库,可能会被损坏的工件弄脏。
默认值为${settings.localRepository}
行家之家 File 1.3 用于分叉构建的 Maven 安装的主目录。默认为当前的 Maven 安装。
mavenOpts String 1.2 MAVEN_OPTS调用 Maven 时使用的环境变量。可以使用invokerPropertiesFile.
无日志 boolean 1.4 禁止记录到build.log文件。
默认值为false
绒球 File 1.4 要构建的单个 POM,跳过任何扫描参数和行为。
pom不包括 List 1.4 排除用于搜索集成测试目录的模式。此参数旨在从 POM 中设置。默认情况下,不排除任何 POM 文件。为了方便使用类似的包含模式 *,参数指定的自定义设置文件 settingsFile将始终被自动排除。
pom包括 List 1.4 包括用于在集成测试目录中搜索项目的模式。此参数旨在从 POM 中设置。如果不设置此参数,插件将搜索下 pom.xml一个目录 projectsDirectory(即*/pom.xml)的所有文件。

从 1.3 版开始,这些模式也可以匹配单纯的目录。例如,包含模式* 将在 的所有直接子目录上运行 Maven 构建 projectsDirectory,无论它们是否包含 pom.xml. 这允许执行需要/不应该依赖于 POM 存在的构建。
postBuildHookScript String 1.4 执行构建后要运行的清理/验证挂钩脚本的相对路径。该脚本可以使用 BeanShell 或 Groovy(从 1.3 开始)编写。如果省略文件扩展名(例如verify),插件会通过尝试众所周知的扩展名.bsh.groovy. 如果此脚本存在于特定项目但返回任何不同于 true或抛出异常的非空值,则相应的构建被标记为失败。
默认值为postbuild
preBuildHookScript String 1.4 在执行构建之前运行的预构建钩子脚本的相对路径。该脚本可以使用 BeanShell 或 Groovy(从 1.3 开始)编写。如果省略文件扩展名(例如 prebuild),插件会通过尝试众所周知的扩展名.bsh.groovy. 如果此脚本存在于特定项目但返回任何不同于 true或抛出异常的非空值,则相应的构建被标记为失败。在这种情况下,既不会调用 Maven 也不会调用构建后挂钩脚本。
默认值为prebuild
简介 List 1.1 要在构建中显式触发的配置文件标识符列表。
配置文件文件 String 1.1 已弃用。从 1.2 版开始,应该使用invoker.profiles参数指定的属性文件中 的密钥。默认值为:。invokerPropertiesFile
profiles.txt
项目目录 File 1.4 搜索集成测试的目录。
默认值为${basedir}/src/it/
特性 Map 1.1 通过 -D 参数在每个项目的命令行上传递的一组通用属性。
报告目录 File 1.4 写入所有构建报告的基本目录。
默认值为${project.build.directory}/invoker-reports
选择器脚本 String 1.5 选择器脚本的相对路径,以决定是否应该执行构建。该脚本可以使用 BeanShell 或 Groovy 编写。如果省略文件扩展名(例如 selector),插件会通过尝试众所周知的扩展名.bsh.groovy. 如果此脚本存在于特定项目但返回任何不同于 的非空值 true,则相应的构建将被标记为已跳过。在这种情况下,不会调用构建前挂钩脚本、Maven 和构建后挂钩脚本。如果此脚本抛出异常,则相应的构建被标记为错误,并且不会调用构建前的钩子脚本,Maven 而不是构建后的钩子脚本。
默认值为selector
设置文件 File 1.2 settings.xml用于所有 IT 的 Maven 调用的备用路径。请注意, <localRepository>此设置文件的元素始终被忽略,即参数给定的路径 localRepositoryPath占主导地位。
设置包括 List 1.3 包括用于在项目目录中搜索需要在其他项目之前运行的项目的模式。此参数允许声明执行设置任务的项目,例如将实用程序工件安装到本地存储库中。与这些模式匹配的项目被隐式地排除在普通项目的扫描之外。此外,该参数定义的排除项也 pomExcludes适用于设置项目。默认值为:setup*/pom.xml
显示错误 boolean 1.4 是否在构建输出中显示错误。
默认值为false
显示版本 boolean 1.4 启用用于运行其的显示 mvn 版本的标志(cli 选项:-V,--show-version)
默认值为false
跳过调用 boolean 1.1 用于禁止某些调用的标志。这在使用配置文件定制构建时很有用。
默认值为false
流日志 boolean 1.4 用于确定是否应将构建日志输出到普通 mojo 日志的标志。
默认值为false
抑制摘要 boolean 1.4 用于禁止通知成功和失败的摘要输出的标志。如果设置为true,构建成功或失败的唯一指示将是它对主构建的影响(如果失败,主构建也应该失败)。如果 streamLogs启用,子构建摘要也将提供指示。
默认值为false
测试属性 Properties 1.4 已弃用。从 1.1 版开始,请改用该properties参数。
测试属性文件 String 1.4 为测试定义 CLI 属性的属性文件的位置。
默认值为test.properties

参数详情

addTestClassPath

一个标志,被测项目的测试类路径是否应该包含在构建前/构建后脚本的类路径中。如果设置为false,则脚本解释器的类路径仅包含Maven Invoker 插件的运行时依赖项。如果设置 true,项目的测试类路径将被添加到解释器类路径中。除其他外,此功能允许脚本从项目的测试源访问实用程序类。
  • 类型boolean
  • 1.2
  • 必需No
  • 表达式${invoker.addTestClassPath}
  • 默认false

克隆所有文件

将 IT 项目从参数 projectsDirectory 指定的目录复制到 cloneProjectsTo 指定的目录(例如.svnCVS*~等)时,通常会排除一些文件。将此参数设置为 true将导致所有文件复制到 cloneProjectsTo 目录。
  • 类型boolean
  • 1.2
  • 必需No
  • 默认false

cloneProjectsTo

在执行之前应将项目克隆到的目录。如果未指定,则每个集成测试都将在找到相应 IT POM 的目录中运行。在这种情况下,您很可能希望将 SCM 配置为忽略targetbuild.log位于测试的基本目录中。
  • 类型java.io.File
  • 1.1
  • 必需No

调试

是否在构建输出中显示调试语句。
  • 类型boolean
  • 1.4
  • 必需No
  • 表达式${invoker.debug}
  • 默认false

禁用报告

禁用生成报告生成的标志。
  • 类型boolean
  • 1.4
  • 必需No
  • 表达式${invoker.disableReports}
  • 默认false

编码

构建前/构建后脚本的文件编码以及目标和配置文件的列表文件。
  • 类型java.lang.String
  • 1.2
  • 必需No
  • 表达式${encoding}
  • 默认${project.build.sourceEncoding}

过滤器属性

将用于过滤 POM 和目标文件中的令牌的附加属性列表。
  • 类型java.util.Map
  • 1.3
  • 必需No

目标

每个项目要执行的目标列表。默认值为: package
  • 类型java.util.List
  • 1.4
  • 必需No

目标文件

已弃用。从 1.2 版开始,应该使用invoker.goals参数指定的属性文件中 的密钥。invokerPropertiesFile
包含要为该测试执行的目标枚举的项目特定文件的名称。
  • 类型java.lang.String
  • 1.4
  • 必需No
  • 表达式${invoker.goalsFile}
  • 默认goals.txt

插值属性

已弃用。从 1.3 版开始,filterProperties 应改为使用该参数。
将用于插入目标文件的属性列表。
  • 类型java.util.Properties
  • 1.1
  • 必需No

调用者属性文件

包含用于指定单个 Maven 调用设置的属性的可选项目特定文件的名称。文件中存在的任何属性都将覆盖插件配置中的相应设置。属性的值被过滤,并且可以使用表达式 ${project.version}来引用项目属性或参数中的值filterProperties。下面的代码片段描述了支持的属性:
# A comma or space separated list of goals/phases to execute, may
# specify an empty list to execute the default goal of the IT project
invoker.goals = clean install

# Optionally, a list of goals to run during further invocations of Maven
invoker.goals.2 = ${project.groupId}:${project.artifactId}:${project.version}:run

# A comma or space separated list of profiles to activate
invoker.profiles = its,jdk15

# The path to an alternative POM or base directory to invoke Maven on, defaults to the
# project that was originally specified in the plugin configuration
# Since plugin version 1.4
invoker.project = sub-module

# The value for the environment variable MAVEN_OPTS
invoker.mavenOpts = -Dfile.encoding=UTF-16 -Xms32m -Xmx256m

# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never"
invoker.failureBehavior = fail-never

# The expected result of the build, possible values are "success" (default) and "failure"
invoker.buildResult = failure

# A boolean value controlling the aggregator mode of Maven, defaults to "false"
invoker.nonRecursive = true

# A boolean value controlling the network behavior of Maven, defaults to "false"
# Since plugin version 1.4
invoker.offline = true

# The path to the properties file from which to load system properties, defaults to the
# filename given by the plugin parameter testPropertiesFile
# Since plugin version 1.4
invoker.systemPropertiesFile = test.properties

# An optional human friendly name for this build job to be included in the build reports.
# Since plugin version 1.4
invoker.name = Test Build 01

# An optional description for this build job to be included in the build reports.
# Since plugin version 1.4
invoker.description = Checks the support for build reports.

# A comma separated list of JRE versions on which this build job should be run.
# Since plugin version 1.4
invoker.java.version = 1.4+, !1.4.1, 1.7-

# A comma separated list of OS families on which this build job should be run.
# Since plugin version 1.4
invoker.os.family = !windows, unix, mac

# A comma separated list of Maven versions on which this build should be run.
# Since plugin version 1.5
invoker.maven.version = 2.0.10+, !2.1.0, !2.2.0
  • 类型java.lang.String
  • 1.2
  • 必需No
  • 表达式${invoker.invokerPropertiesFile}
  • 默认invoker.properties

调用者测试

要运行的项目名称的逗号分隔列表。指定此参数以按文件名运行单个测试,覆盖 setupIncludespomIncludespomExcludes参数。您在此处指定的每个模式都将用于创建格式为 的包含模式 ,因此您只需键入以在和 中运行构建。${projectsDirectory}/pattern-Dinvoker.test=FirstTest,SecondTest${projectsDirectory}/FirstTest${projectsDirectory}/SecondTest
  • 类型java.lang.String
  • 1.1
  • 必需No
  • 表达式${invoker.test}

主页

JAVA_HOME用于分叉 Maven 调用的环境变量。默认为当前 Java 主目录。
  • 类型java.io.File
  • 1.3
  • 必需No
  • 表达式${invoker.javaHome}

本地存储库路径

用于缓存工件的本地存储库。强烈建议指定一个独立存储库的路径,例如 ${project.build.directory}/it-repo. 否则,将使用您的普通本地存储库,可能会被损坏的工件弄脏。
  • 类型java.io.File
  • 1.4
  • 必需No
  • 表达式${invoker.localRepositoryPath}
  • 默认${settings.localRepository}

maven主页

用于分叉构建的 Maven 安装的主目录。默认为当前的 Maven 安装。
  • 类型java.io.File
  • 1.3
  • 必需No
  • 表达式${invoker.mavenHome}

mavenOpts

MAVEN_OPTS调用 Maven 时使用的环境变量。可以使用invokerPropertiesFile.
  • 类型java.lang.String
  • 1.2
  • 必需No
  • 表达式${invoker.mavenOpts}

无日志

禁止记录到build.log文件。
  • 类型boolean
  • 1.4
  • 必需No
  • 表达式${invoker.noLog}
  • 默认false

pom

要构建的单个 POM,跳过任何扫描参数和行为。
  • 类型java.io.File
  • 1.4
  • 必需No
  • 表达式${invoker.pom}

pom排除

排除用于搜索集成测试目录的模式。此参数旨在从 POM 中设置。默认情况下,不排除任何 POM 文件。为了方便使用类似的包含模式 *,参数指定的自定义设置文件 settingsFile将始终被自动排除。
  • 类型java.util.List
  • 1.4
  • 必需No

pom包括

包括用于在集成测试目录中搜索项目的模式。此参数旨在从 POM 中设置。如果不设置此参数,插件将搜索下 pom.xml一个目录 projectsDirectory(即*/pom.xml)的所有文件。

从 1.3 版开始,这些模式也可以匹配单纯的目录。例如,包含模式* 将在 的所有直接子目录上运行 Maven 构建 projectsDirectory,无论它们是否包含 pom.xml. 这允许执行需要/不应该依赖于 POM 存在的构建。
  • 类型java.util.List
  • 1.4
  • 必需No

postBuildHookScript

执行构建后要运行的清理/验证挂钩脚本的相对路径。该脚本可以使用 BeanShell 或 Groovy(从 1.3 开始)编写。如果省略文件扩展名(例如verify),插件会通过尝试众所周知的扩展名.bsh.groovy. 如果此脚本存在于特定项目但返回任何不同于 true或抛出异常的非空值,则相应的构建被标记为失败。
  • 类型java.lang.String
  • 1.4
  • 必需No
  • 表达式${invoker.postBuildHookScript}
  • 默认postbuild

preBuildHookScript

在执行构建之前运行的预构建钩子脚本的相对路径。该脚本可以使用 BeanShell 或 Groovy(从 1.3 开始)编写。如果省略文件扩展名(例如 prebuild),插件会通过尝试众所周知的扩展名.bsh.groovy. 如果此脚本存在于特定项目但返回任何不同于 true或抛出异常的非空值,则相应的构建被标记为失败。在这种情况下,既不会调用 Maven 也不会调用构建后挂钩脚本。
  • 类型java.lang.String
  • 1.4
  • 必需No
  • 表达式${invoker.preBuildHookScript}
  • 默认prebuild

简介

要在构建中显式触发的配置文件标识符列表。
  • 类型java.util.List
  • 1.1
  • 必需No

配置文件文件

已弃用。从 1.2 版开始,应该使用invoker.profiles参数指定的属性文件中 的密钥。invokerPropertiesFile
包含用于该测试的配置文件枚举的项目特定文件的名称。如果文件存在且为空,即使 profiles设置了参数,也不会使用任何配置文件。
  • 类型java.lang.String
  • 1.1
  • 必需No
  • 表达式${invoker.profilesFile}
  • 默认profiles.txt

项目目录

搜索集成测试的目录。
  • 类型java.io.File
  • 1.4
  • 必需No
  • 表达式${invoker.projectsDirectory}
  • 默认${basedir}/src/it/

属性

通过 -D 参数在每个项目的命令行上传递的一组通用属性。
  • 类型java.util.Map
  • 1.1
  • 必需No

报告目录

写入所有构建报告的基本目录。
  • 类型java.io.File
  • 1.4
  • 必需No
  • 表达式${invoker.reportsDirectory}
  • 默认${project.build.directory}/invoker-reports

选择器脚本

选择器脚本的相对路径,以决定是否应该执行构建。该脚本可以使用 BeanShell 或 Groovy 编写。如果省略文件扩展名(例如 selector),插件会通过尝试众所周知的扩展名.bsh.groovy. 如果此脚本存在于特定项目但返回任何不同于 的非空值 true,则相应的构建将被标记为已跳过。在这种情况下,不会调用构建前挂钩脚本、Maven 和构建后挂钩脚本。如果此脚本抛出异常,则相应的构建被标记为错误,并且不会调用构建前的钩子脚本,Maven 而不是构建后的钩子脚本。
  • 类型java.lang.String
  • 1.5
  • 必需No
  • 表达式${invoker.selectorScript}
  • 默认selector

设置文件

settings.xml用于所有 IT 的 Maven 调用的备用路径。请注意, <localRepository>此设置文件的元素始终被忽略,即参数给定的路径 localRepositoryPath占主导地位。
  • 类型java.io.File
  • 1.2
  • 必需No
  • 表达式${invoker.settingsFile}

设置包括

包括用于在项目目录中搜索需要在其他项目之前运行的项目的模式。此参数允许声明执行设置任务的项目,例如将实用程序工件安装到本地存储库中。与这些模式匹配的项目被隐式地排除在普通项目的扫描之外。此外,该参数定义的排除项也 pomExcludes适用于设置项目。默认值为:setup*/pom.xml
  • 类型java.util.List
  • 1.3
  • 必需No

显示错误

是否在构建输出中显示错误。
  • 类型boolean
  • 1.4
  • 必需No
  • 表达式${invoker.showErrors}
  • 默认false

显示版本

启用用于运行其的显示 mvn 版本的标志(cli 选项:-V,--show-version)
  • 类型boolean
  • 1.4
  • 必需No
  • 表达式${invoker.showVersion}
  • 默认false

跳过调用

用于禁止某些调用的标志。这在使用配置文件定制构建时很有用。
  • 类型boolean
  • 1.1
  • 必需No
  • 表达式${invoker.skip}
  • 默认false

流日志

用于确定是否应将构建日志输出到普通 mojo 日志的标志。
  • 类型boolean
  • 1.4
  • 必需No
  • 表达式${invoker.streamLogs}
  • 默认false

抑制总结

用于禁止通知成功和失败的摘要输出的标志。如果设置为true,构建成功或失败的唯一指示将是它对主构建的影响(如果失败,主构建也应该失败)。如果 streamLogs启用,子构建摘要也将提供指示。
  • 类型boolean
  • 1.4
  • 必需No
  • 默认false

测试属性

已弃用。从 1.1 版开始,请改用该properties参数。
通过 -D 参数在每个 IT 的命令行上传递的一组通用测试属性。
  • 类型java.util.Properties
  • 1.4
  • 必需No

测试属性文件

为测试定义 CLI 属性的属性文件的位置。
  • 类型java.lang.String
  • 1.4
  • 必需No
  • 表达式${invoker.testPropertiesFile}
  • 默认test.properties