附录 A. 参考材料
A.1. 关于 MTR 命令行参数
以下是可用 MTR 命令行参数的详细描述。
要在不提示的情况下运行 MTR 命令,例如从脚本执行时,您必须使用以下参数:
-
--batchMode
-
--overwrite
-
--input
-
--target
参数 | 描述 |
---|---|
--additionalClassPath | 要添加到类路径的额外 JAR 文件或目录列表(以空格分隔),以便它们可用于处理或进行其他分析。 |
--addonDir | 将指定的目录添加为自定义附加组件存储库。 |
--analyzeKnownLibraries | 用于分析应用程序中嵌入的已知软件工件的标志。默认情况下,MTR 仅分析应用程序代码。 注意 这个选项可能会导致执行时间较长,并报告大量迁移问题。 |
--batchMode | 指定 MTR 应该在不提示确认的情况下以非互动模式运行的标志。这个模式采用未传递给命令行的任何参数的默认值。 |
--debug | 在调试模式下运行 MTR 的标志。 |
--disableTattletale |
可禁用 Tattletale 报告的生成标志。如果同时将 |
--discoverPackages | 用于列出输入二进制应用程序中的所有可用软件包的标志。 |
--enableClassNotFoundAnalysis | 标志,以启用对类路径上不可用的 Java 文件进行分析。如果一些类在分析时不可用,则不应使用。 |
--enableCompatibleFilesReport | 启用生成可组合文件报告的标志。由于处理的所有文件都未发现问题,对于大型应用程序,此报告可能需要很长时间才能完成。 |
--enableTattletale |
用于为每个应用程序生成 Tattletale 报告的标志。当 |
--enableTransactionAnalysis |
[技术预览] 标记来启用生成交易报告,该报告显示调用堆栈,该堆栈对关系数据库表执行操作。Enable Transaction Analysis 功能支持 Spring Data JPA,以及用于 SQL 语句执行的传统的 注意 enableTransactionAnalysis 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。 |
--excludePackages |
要排除在评估中排除的软件包列表。例如,输入 |
--excludeTags |
要排除的以逗号分隔的标签列表。指定后,不会处理具有这些标签的规则。要查看完整的标记列表,请使用 |
--explodedApp | 指定提供的输入目录包含单个应用程序的源文件的标志。 |
--exportCSV |
标志,将报告数据导出到本地文件系统中的 CSV 文件。MTR 在由 |
--help | 显示 MTR 帮助信息。 |
--immutableAddonDir | 将指定目录添加为自定义只读附加组件存储库。 |
--includeTags |
要使用的空格分隔的标记列表。指定后,仅处理具有这些标签的规则。要查看完整的标记列表,请使用 |
--input | 到要分析的一个或多个应用程序的文件或目录的路径列表。此参数是必需的。 |
--install |
指定要安装的附加组件。语法为 |
--keepWorkDirs | 标志指示 MTR 不会删除临时文件,如图形数据库和提取的存档文件。这对于调试非常有用。 |
--list | 列出已安装的附加组件的标志。 |
--listSourceTechnologies | 用于列出所有可用的源技术的标志。 |
--listTags | 用于列出所有可用的标签的标志。 |
--listTargetTechnologies | 用于列出所有可用目标技术的标记。 |
--mavenize |
标志,基于应用的结构和内容创建 Maven 项目目录结构。这将使用适当的 Java EE API 和项目模块之间依赖关系创建 |
--mavenizeGroupId |
与 |
--online | 标志,允许对需要的功能进行网络访问。目前,根据外部资源验证 XML 模式是否依赖于互联网访问。请注意,这附带了一个性能损失。 |
--output | 指定输出 MTR 生成的报告信息的目录路径。 |
--overwrite |
用于强制删除 重要 不要覆盖包含重要信息的报告输出目录。 |
--packages | MTR 要评估的软件包用空格分隔的列表。强烈建议您使用此参数。 |
--remove |
删除指定的附加组件。语法为 |
--skipReports |
表示 HTML 报告不应生成的标志。此参数的常见用途是使用 |
--source |
要迁移的一个或多个源技术、服务器、平台或框架的空格分隔列表。此参数与 |
--sourceMode | 用于表示要评估的应用包含源文件而非编译的二进制文件的标志。sourceMode 参数已弃用。现在,不再需要指定它。MTR 可以直观地处理向其呈现的任何输入。另外,可以使用同一分析执行中的二进制输入来分析项目源文件夹。 |
--target |
要迁移到的一个或多个目标技术、服务器、平台或框架的空格分隔列表。此参数与 |
--userIgnorePath |
除了 |
--userLabelsDirectory |
指定 MTR 来查找自定义 Target Runtime Labels 的位置。该值可以是含有标签文件或单个标签文件的目录。Target Runtime Label 文件必须使用 |
--userRulesDirectory |
除 |
--version | 显示 MTR 版本。 |
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.mycustomapp
和com.myotherapp
和com.myotherapp com.mycustomapp com.myotherapp
参数。 -
虽然您可以为标准 Java EE 第三方软件(如
org.apache
)提供软件包名称,但通常最好不要包含它们,因为它们不会影响迁移工作。
如果省略 --packages
参数,应用程序中的每个软件包都会被扫描,这可能会影响性能。