附录 A. 参考材料


A.1. 关于 MTR 命令行参数

以下是可用 MTR 命令行参数的详细描述。

注意

要在不提示的情况下运行 MTR 命令,例如从脚本执行时,您必须使用以下参数:

  • --batchMode
  • --overwrite
  • --input
  • --target
表 A.1. MTR CLI 参数
参数描述

--additionalClassPath

要添加到类路径的额外 JAR 文件或目录列表(以空格分隔),以便它们可用于处理或进行其他分析。

--addonDir

将指定的目录添加为自定义附加组件存储库。

--analyzeKnownLibraries

用于分析应用程序中嵌入的已知软件工件的标志。默认情况下,MTR 仅分析应用程序代码。

注意

这个选项可能会导致执行时间较长,并报告大量迁移问题。

--batchMode

指定 MTR 应该在不提示确认的情况下以非互动模式运行的标志。这个模式采用未传递给命令行的任何参数的默认值。

--debug

在调试模式下运行 MTR 的标志。

--disableTattletale

可禁用 Tattletale 报告的生成标志。如果同时将 enableTattletaledisableTattletale 设定为 true,则 disableTattletale 会被忽略,但仍会生成 Tattletale 报告。

--discoverPackages

用于列出输入二进制应用程序中的所有可用软件包的标志。

--enableClassNotFoundAnalysis

标志,以启用对类路径上不可用的 Java 文件进行分析。如果一些类在分析时不可用,则不应使用。

--enableCompatibleFilesReport

启用生成可组合文件报告的标志。由于处理的所有文件都未发现问题,对于大型应用程序,此报告可能需要很长时间才能完成。

--enableTattletale

用于为每个应用程序生成 Tattletale 报告的标志。当 eap 位于包含的目标中时,默认启用这个选项。如果同时将 enableTattletaledisableTattletale 设定为 true,则 disableTattletale 会被忽略,但仍会生成 Tattletale 报告。

--enableTransactionAnalysis

[技术预览] 标记来启用生成交易报告,该报告显示调用堆栈,该堆栈对关系数据库表执行操作。Enable Transaction Analysis 功能支持 Spring Data JPA,以及用于 SQL 语句执行的传统的 preparedStatement() 方法。它不支持 ORM 框架,如 Hibernate。

注意

enableTransactionAnalysis 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

--excludePackages

要排除在评估中排除的软件包列表。例如,输入 com.mycompany.commonutilities 排除所有软件包名称以 com.mycompany.commonutilities 开头的类。

--excludeTags

要排除的以逗号分隔的标签列表。指定后,不会处理具有这些标签的规则。要查看完整的标记列表,请使用 --listTags 参数。

--explodedApp

指定提供的输入目录包含单个应用程序的源文件的标志。

--exportCSV

标志,将报告数据导出到本地文件系统中的 CSV 文件。MTR 在由 --output 参数指定的目录中创建文件。CSV 文件可导入到电子表格程序,以便进行数据操作和分析。

--exportSummary

指示 MTR 在输出目录中生成 analysisSummary.json 导出文件的标记。文件包含了对每个被分析的应用程序的分析摘要信息,包括按类别划分的事件和故事点数,以及与分析的应用程序关联的所有技术标签。

--exportZipReport

此参数在输出文件夹中创建一个 report.zip 文件。该文件包含分析输出,通常是报告。如果请求,它也可以包含 CSV 导出文件。

--help

显示 MTR 帮助信息。

--immutableAddonDir

将指定目录添加为自定义只读附加组件存储库。

--includeTags

要使用的空格分隔的标记列表。指定后,仅处理具有这些标签的规则。要查看完整的标记列表,请使用 --listTags 参数。

--input

到要分析的一个或多个应用程序的文件或目录的路径列表。此参数是必需的。

--install

指定要安装的附加组件。语法为 <GROUP_ID>:<ARTIFACT_ID>[:<VERSION>]。例如:--install core-addon-x--install org.example.addon:example:1.0.0

--keepWorkDirs

标志指示 MTR 不会删除临时文件,如图形数据库和提取的存档文件。这对于调试非常有用。

--legacyReports

指示 MTR 生成旧格式报告而不是新的格式报告的标记。

--list

列出已安装的附加组件的标志。

--listSourceTechnologies

用于列出所有可用的源技术的标志。

--listTags

用于列出所有可用的标签的标志。

--listTargetTechnologies

用于列出所有可用目标技术的标记。

--mavenize

标志,基于应用的结构和内容创建 Maven 项目目录结构。这将使用适当的 Java EE API 和项目模块之间依赖关系创建 pom.xml 文件。另请参阅 --mavenizeGroupId 选项。

--mavenizeGroupId

--mavenize 选项一起使用时,所有生成的 pom.xml 文件都使用为它们的 <groupId> 提供的值。如果省略了这个参数,则 MTR 将尝试根据应用程序确定适当的 <groupId> 参数,或者将默认为 com.mycompany.mavenized

--online

标志,允许对需要的功能进行网络访问。目前,根据外部资源验证 XML 模式是否依赖于互联网访问。请注意,这附带了一个性能损失。

--output

指定输出 MTR 生成的报告信息的目录路径。

--overwrite

用于强制删除 --output 指定的现有输出目录的标志。如果没有指定此参数,且存在 --output 目录,则会提示您选择是否覆盖内容。

重要

不要覆盖包含重要信息的报告输出目录。

--packages

MTR 要评估的软件包用空格分隔的列表。强烈建议您使用此参数。

--remove

删除指定的附加组件。语法为 <GROUP_ID>:<ARTIFACT_ID>[:<VERSION>]。例如: --remove core-addon-x--remove org.example.addon:example:1.0.0

--skipReports

表示 HTML 报告不应生成的标志。此参数的常见用途是使用 --exportCSV 将报告数据导出到 CSV 文件时。

--source

要迁移的一个或多个源技术、服务器、平台或框架的空格分隔列表。此参数与 --target 参数结合使用有助于确定使用哪个规则集。使用 --listSourceTechnologies 参数列出所有可用的源。

--sourceMode

用于表示要评估的应用包含源文件而非编译的二进制文件的标志。sourceMode 参数已弃用。现在,不再需要指定它。MTR 可以直观地处理向其呈现的任何输入。另外,可以使用同一分析执行中的二进制输入来分析项目源文件夹。

--target

要迁移到的一个或多个目标技术、服务器、平台或框架的空格分隔列表。此参数与 --source 参数结合使用有助于确定使用哪个规则集。使用 --listTargetTechnologies 参数列出所有可用的目标。

--userIgnorePath

除了 ${user.home}/.mtr/ignore/ 之外,为 MTR 指定位置,以识别应忽略的文件。

--userLabelsDirectory

指定 MTR 来查找自定义 Target Runtime Labels 的位置。该值可以是含有标签文件或单个标签文件的目录。Target Runtime Label 文件必须使用 .windup.label.xml 后缀。提供的 Target Runtime Labels 在 $MTR_HOME/rules/migration-core/core.windup.label.xml 中定义。

--userRulesDirectory

<MTR_HOME>/rules/${user.home}/.mtr/rules/ 外为 MTR 指定一个位置来查找自定义 MTR 规则。该值可以是包含规则集文件或单个规则集文件的目录。ruleset 文件必须使用 .windup.xml 后缀。

--version

显示 MTR 版本。

--skipSourceCodeReports

此选项会在生成应用程序分析报告时跳过生成源代码报告。当需要关注应用程序分析中的源代码信息时,请使用此高级选项。

A.1.1. 指定输入

到要分析的一个或多个应用程序的文件或目录的路径列表。此参数是必需的。

使用方法

--input <INPUT_ARCHIVE_OR_DIRECTORY> [...]

根据提供给 --input 参数提供的输入文件类型是否为文件或目录,它将根据提供的附加参数进行评估。

目录
--explodedApp--sourceMode没有参数

目录作为单个应用进行评估。

目录作为单个应用进行评估。

每个子目录都作为应用进行评估。

File
--explodedApp--sourceMode没有参数

参数将被忽略;该文件将评估为单个应用。

该文件作为压缩的项目进行评估。

该文件作为单个应用进行评估。

A.1.2. 指定输出目录

指定输出 MTR 生成的报告信息的目录路径。

使用方法

--output <OUTPUT_REPORT_DIRECTORY>

  • 如果省略,则会在 <INPUT_ARCHIVE_OR_DIRECTORY>.report 目录中生成报告。
  • 如果存在输出目录,系统将提示您(默认值为 N)。

    Overwrite all contents of "/home/username/<OUTPUT_REPORT_DIRECTORY>" (anything already in the directory will be deleted)? [y,N]

但是,如果您指定 --overwrite 参数,则 MTR 将继续删除并重新创建 目录。如需更多信息,请参阅此参数的描述。

A.1.3. 设置源技术

要迁移的一个或多个源技术、服务器、平台或框架的空格分隔列表。此参数与 --target 参数结合使用有助于确定使用哪个规则集。使用 --listSourceTechnologies 参数列出所有可用的源。

使用方法

--source <SOURCE_1> <SOURCE_2>

--source 参数现在提供版本支持,它遵循 Maven 版本范围语法。这指示 MTR 只运行与指定版本匹配的规则集。例如,--source eap:5

警告

迁移到 JBoss EAP 时,请务必指定版本,如 eap:6。仅指定 eap 将针对所有版本的 JBoss EAP 运行规则集,包括与您的迁移路径无关。

有关相应 JBoss EAP 版本的 Migration Toolkit for Runtimes 简介,请参阅支持的迁移路径

A.1.4. 设置目标技术

要迁移到的一个或多个目标技术、服务器、平台或框架的空格分隔列表。此参数与 --source 参数结合使用有助于确定使用哪个规则集。如果没有指定这个选项,系统会提示您选择一个目标。使用 --listTargetTechnologies 参数列出所有可用的目标。

使用方法

--target <TARGET_1> <TARGET_2>

--target 参数现在提供版本支持,它遵循 Maven 版本范围语法。这指示 MTR 只运行与指定版本匹配的规则集。例如,--target eap:7.

警告

迁移到 JBoss EAP 时,请务必在目标中指定版本,例如 eap:6。仅指定 eap 将针对所有版本的 JBoss EAP 运行规则集,包括与您的迁移路径无关。

有关相应 JBoss EAP 版本的 Migration Toolkit for Runtimes 简介,请参阅支持的迁移路径

A.1.5. 选择软件包

MTR 要评估的软件包用空格分隔的列表。强烈建议您使用此参数。

使用方法

--packages <PACKAGE_1> <PACKAGE_2> <PACKAGE_N>

  • 在大多数情况下,您只想评估自定义应用程序类软件包而不是标准 Java EE 或第三方软件包。<PACKAGE_N> 参数是一个软件包前缀;所有子软件包都会被扫描。例如,要扫描命令行上的 com.mycustomappcom.myotherappcom.myotherapp com.mycustomapp com.myotherapp 参数。
  • 虽然您可以为标准 Java EE 第三方软件(如 org.apache )提供软件包名称,但通常最好不要包含它们,因为它们不会影响迁移工作。
警告

如果省略 --packages 参数,应用程序中的每个软件包都会被扫描,这可能会影响性能。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.