2.3. 运行 CLI
根据您的场景,您可以使用 Migration Toolkit for Applications (MTA) CLI 使用以下方法运行分析:
- 对单个应用程序运行分析。
对多个应用程序运行分析:
-
在早于 7.1.0 的 MTA 版本中,您可以输入一系列 -
analyze
命令,每个命令都针对某个应用程序,各自生成单独的报告。如需更多信息,请参阅 针对应用程序运行 MTA CLI。 -
在 MTA 7.1.0 及更新的版本中,您可以使用--
bulk
选项一次分析多个应用程序并生成单个报告。请注意,这个功能只是一个技术预览功能。如需更多信息,请参阅 针对多个应用程序运行 MTA CLI 并生成单个报告(开发者预览)。
-
在早于 7.1.0 的 MTA 版本中,您可以输入一系列 -
从 MTA 7.2.0 开始,您可以在无容器模式下运行应用程序分析。请注意,默认设置这个选项,并在满足所有要求时自动使用。如需更多信息,请参阅 运行无容器 CLI。
2.3.1. 针对应用程序运行 MTA CLI 复制链接链接已复制到粘贴板!
您可以针对应用程序运行 Migration Toolkit for Applications (MTA) CLI。
流程
-
打开一个终端,再进入 <
MTA_HOME>/
目录。 运行
mta-cli
脚本,或为 Windows 运行mta-cli.exe
,并指定适当的参数:./mta-cli analyze --input <path_to_input> \ --output <path_to_output> --source <source_name> --target <target_source> \
$ ./mta-cli analyze --input <path_to_input> \ --output <path_to_output> --source <source_name> --target <target_source> \
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
--input
:要评估的应用程序。 -
--output
:所生成的报告的输出目录。 -
--source
:应用程序迁移的源技术。例如,weblogic。
-
--target
:应用程序迁移的目标技术。例如,eap8
。
-
- 访问报告。
2.3.1.1. MTA 命令示例 复制链接链接已复制到粘贴板!
在应用程序存档中运行 MTA
以下命令分析名为 jee-example-app-1.0.0.ear
的 EAR 存档示例,用于从 JBoss EAP 5 迁移到 JBoss EAP 7:
<MTA_HOME>/mta-cli analyze \ --input <path_to_jee-example-app-1.0.0.ear> \ --output <path_to_report_output> --source eap5 --target eap7 \
$ <MTA_HOME>/mta-cli analyze \
--input <path_to_jee-example-app-1.0.0.ear> \
--output <path_to_report_output> --source eap5 --target eap7 \
在源代码上运行 MTA
以下命令分析一个称为 客户管理
(迁移到 JBoss EAP 8)的示例应用的源代码。
<MTA_HOME>/mta-cli analyze --mode source-only --input <path_to_customer-management>
$ <MTA_HOME>/mta-cli analyze --mode source-only --input <path_to_customer-management>
--output <path_to_report_output> --target eap8
运行云就绪规则
以下命令分析名为 jee-example-app-1.0.0.ear
的 EAR 存档示例,以迁移到 JBoss EAP 7。它还评估云就绪的归档:
<MTA_HOME>/mta-cli analyze --input <path_to_jee-example-app-1.0.0.ear> \ --output <path_to_report_output> \ --target eap7
$ <MTA_HOME>/mta-cli analyze --input <path_to_jee-example-app-1.0.0.ear> \
--output <path_to_report_output> \
--target eap7
2.3.2. 针对多个应用程序运行 MTA CLI 并生成单个报告(开发者预览) 复制链接链接已复制到粘贴板!
现在,您可以针对多个应用程序运行 Migration Toolkit for Applications (MTA) CLI,并生成组合报告。这可以节省时间,并让您更好地了解如何为迁移准备一组应用程序。
此功能目前是开发者技术预览功能。
针对一个或多个应用程序运行 CLI 只是一个技术预览功能。Developer Preview(开发人员预览)功能不被红帽支持,其功能可能并不完善且不是生产环境就绪。不要将开发人员预览功能用于生产环境或业务关键型工作负载。开发人员预览功能可以在之前可能地包含在红帽产品产品中提前访问即将推出的产品功能,使客户能够测试功能并在开发过程中提供反馈。这些功能可能没有任何文档,可能会随时被更改或删除,测试也会受到限制。红帽可能会提供在没有关联 SLA 的情况下提交对开发人员预览功能的反馈。
流程
-
打开一个终端,再进入 <
MTA_HOME>/
目录。 运行
mta-cli
脚本或 Windows 的mta-cli.exe
,并指定适当的参数,为每个analyze
命令输入一个输入,但为所有输入输入相同的输出目录。例如,要分析应用程序 A、B 和 C:输入以下命令输入 A:
./mta-cli analyze --bulk --input=<path_to_input_A> --output=<path_to_output_ABC> --source <source_A> --target <target_A>
$ ./mta-cli analyze --bulk --input=<path_to_input_A> --output=<path_to_output_ABC> --source <source_A> --target <target_A>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
--input
:要评估的应用程序。 -
--output
:所生成的报告的输出目录。 -
--source
:应用程序迁移的源技术。例如,weblogic。
-
--target
:应用程序迁移的目标技术。例如,eap8
。
-
输入以下命令输入 B :
./mta-cli analyze --bulk --input=<path_to_input_B> --output=<path_to_output_ABC> --source <source_B> --target <target_B>
$ ./mta-cli analyze --bulk --input=<path_to_input_B> --output=<path_to_output_ABC> --source <source_B> --target <target_B>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令输入 C:
./mta-cli analyze --bulk --input=<path_to_input_C> --output=<path_to_output_ABC> --source <source_C> --target <target_C>
$ ./mta-cli analyze --bulk --input=<path_to_input_C> --output=<path_to_output_ABC> --source <source_C> --target <target_C>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow MTA 生成单个报告,列出在迁移应用程序前需要解决的所有问题。
- 访问报告。
2.3.3. 使用命令行执行分析 复制链接链接已复制到粘贴板!
分析
支持使用 analyzer-lsp
工具运行源代码和二进制分析。analyzer-lsp
评估提供程序的规则,并确定规则匹配。
在分析过程中,无法从编译的 Java 二进制文件提取依赖项列表,特别是当依赖项没有嵌入到二进制中时。
要在应用程序源代码上运行分析,请运行以下命令:
mta-cli analyze --input=<path_to_source_code> --output=<path_to_output_directory>
mta-cli analyze --input=<path_to_source_code> --output=<path_to_output_directory>
all 标记:
上面的标记列表不包括-- bulk
标志,因为此标志仅作为开发者预览功能的一部分提供。此功能在 CLI 上分析多个应用程序时提供单一报告的支持。
使用示例
- 获取要运行分析的示例应用程序。
列出可用的目标技术。
mta-cli analyze --list-targets
mta-cli analyze --list-targets
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用指定的目标技术运行分析,如
云就绪
。mta-cli analyze --input=<path-to/example-applications/example-1> --output=<path-to-output-dir> --target=cloud-readiness
mta-cli analyze --input=<path-to/example-applications/example-1> --output=<path-to-output-dir> --target=cloud-readiness
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在您指定的输出路径中创建几个分析报告:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
output.yaml
是包含问题报告的文件。 -
static-report
包含静态 HTML 报告。 -
dependencies.yaml
包含依赖项报告。
-
2.3.4. 运行无容器 CLI 复制链接链接已复制到粘贴板!
从 MTA 7.2.0 开始,您可以使用不需要安装容器运行时的 MTA CLI 对 Java 应用程序执行应用程序分析。
在 MTA 7.2.0 及更新的版本中,无容器 CLI 是默认模式。要启用容器运行时使用,您必须将 --run-local
标志设置为 false
:
--run-local=false
--run-local=false
先决条件
- 在您的系统上已安装了 OpenJDK 版本 17 或更高版本。
- 您的系统上已安装了 Maven 版本 3.9.9 或更高版本。
CLI 假设在 system 变量中正确注册了
mvn
二进制文件的路径。因此,请确保将mvn
添加到以下变量中:-
Windows 的路径。
-
用于 Linux 和 macOS 的
PATH
。
-
Windows 的路径。
-
您已设置了
JAVA_HOME
环境变量。 您已设置了
JVM_MAX_MEM
系统变量。注意如果没有设置
JVM_MAX_MEM
,分析可能会挂起。
Linux 的步骤
将整个 zip 文件解压缩到 ~/.kantra
后,将该路径添加到 $PATH
变量。
将 mta-cli
二进制文件移到 /usr/bin
需要 root 特权,而将该路径添加到 $PATH
变量不需要 root 特权。
要将依赖项 zip 文件提取到
~/.kantra
,请运行:unzip $HOME/mta-cli.<os>.<arch>.zip -d $HOME/.kantra
unzip $HOME/mta-cli.<os>.<arch>.zip -d $HOME/.kantra
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 添加为系统范围二进制文件,或添加到全局
$PATH
变量中:例如,要使用
sudo
将mta-cli
二进制文件添加到/usr/bin
中作为系统范围的二进制文件,请运行:sudo mv ~/.kantra/mta-cli /usr/bin/
sudo mv ~/.kantra/mta-cli /usr/bin/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,要添加到全局
$PATH
变量中,请运行:export PATH=$HOME/.kantra:$PATH
export PATH=$HOME/.kantra:$PATH
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注意CLI 可以通过将要求移到运行分析的目录中运行。在分析过程中,CLI 会首先检查此目录中的要求,如果它没有找到要求,它会在
$HOME/.kantra
目录中搜索它们。可选:显示所有
mta-cli analyze
命令选项:mta-cli analyze --help
mta-cli analyze --help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行应用程序分析:
mta-cli analyze --overwrite --input <path_to_input> --output <path_to_output> --target <target_source>
$ mta-cli analyze --overwrite --input <path_to_input> --output <path_to_output> --target <target_source>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命令参数代表以下内容:
-
--overwrite
:覆盖输出文件夹(如果存在)。 -
--input
:要分析的应用程序。 -
--output
:所生成的报告的输出目录。 -
--target
:应用程序迁移的目标技术,如eap8
。
-
2.3.5. 使用命令行执行转换 复制链接链接已复制到粘贴板!
您可以使用转换执行以下操作:
-
使用
transform openrewrite
命令转换 Java 应用源代码。 -
使用转换规则命令将 XML 规则转换为
YAML 规则
。
执行转换需要配置容器运行时。如需更多信息,请参阅使用 Podman 安装 CLI。
2.3.5.1. OpenRewrite 复制链接链接已复制到粘贴板!
openrewrite
子命令允许在源代码上运行 OpenRewrite
方法。
要在应用程序源代码上运行 openrewrite
,请运行以下命令:
mta-cli transform openrewrite --input=<path/to/source/code> --target=<exactly_one_target_from_the_list>
mta-cli transform openrewrite --input=<path/to/source/code> --target=<exactly_one_target_from_the_list>
您只能使用单个目标来运行 转换覆盖
命令。
2.3.5.2. 规则 复制链接链接已复制到粘贴板!
您可以使用 transform
命令的 rules
子命令,将 mta XML 规则转换为 analyzer-lsp
YAML 规则。要覆盖规则,rules
子命令使用 windup-shim
工具。
analyzer-lsp
评估提供程序的规则,并确定规则匹配。
要在应用程序源代码上运行 转换规则
,请运行以下命令:
mta-cli transform rules --input=<path/to/xmlrules> --output=<path/to/output/dir>
mta-cli transform rules --input=<path/to/xmlrules> --output=<path/to/output/dir>
使用示例
- 获取示例应用程序来转换源代码。
查看可用的 OpenRewrite recipes。
mta-cli transform openrewrite --list-targets
mta-cli transform openrewrite --list-targets
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在示例应用程序上运行方法。
mta-cli transform openrewrite --input=<path-to/jakartaee-duke> --target=jakarta-imports
mta-cli transform openrewrite --input=<path-to/jakartaee-duke> --target=jakarta-imports
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
jakartaee-duke
应用源代码 diff 以查看转换。
2.3.5.3. 可用的 OpenRewrite recipes 复制链接链接已复制到粘贴板!
迁移路径 | 用途 | rewrite.configLocation | activeRecipes |
---|---|---|---|
Java EE 到 Jakarta EE |
使用对等的
将 |
|
|
Java EE 到 Jakarta EE | 重命名 bootstrap 文件 |
|
|
Java EE 到 Jakarta EE |
转换 |
|
|
Spring Boot 到 Quarkus |
在文件中替换 |
|
|