---
title: 配置中间件通用迁移流程
description: "可通过配置文件添加Java语言类中间件，走通用中间件迁移流程，从而提升中间件迁移能力。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/systemmigration/DevKit_Porting_0137.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/systemmigration/DevKit_Porting_0137.html
indexId: 99cddf737ce0367d5e860d1fadd464742b7ae2a5f88ff6f1df0fb2cb0ee77cf879
---
# 配置中间件通用迁移流程

可通过配置文件添加Java语言类中间件，走通用中间件迁移流程，从而提升中间件迁移能力。

#### 操作步骤

1. 使用安装DevKit使用的用户SSH远程登录工具，获取扫描规则文件。
  扫描规则文件可从“/opt/DevKit/devkitplugins/porting/cmd/bin/resources/sysmig_disk_scan_classifier.json”获取。

2. 使用SSH远程登录工具，以root用户登录源节点（x86），将获取的扫描规则文件放置于节点信息采集脚本同一级目录下。
3. 配置扫描规则文件。
```
vi sysmig_disk_scan_classifier.json
```

按“i”进入编辑模式，以新增如下加粗内容为例：

```
{
"linux_binary_classifiers": [
{
"cli_category": "MIDDLEWARE",
"category": 3,
"file_glob": "**/target/nacos-server.jar",
"version_pattern": "(?m)Implementation-Version:\\s(?P<version>[0-9]+[.0-9]*)",
"version_file": "MANIFEST.MF",
"package": "Nacos",
"supplier": "Alibaba",
"type": "BINARY",
"metadata_type": "MIDDLEWARE_WEB_ALIBABA_NACOS",
"company_type": "开源",
"relative_directory_hierarchy": "../",
"mig_process_type": 1
}
,
{
"cli_category": "RUNTIME_JAVA",
"category": 3,
"file_glob": "**/java",
"version_pattern": "(?m)(\\x00java\\x00|\\x00|\\x00-Djava.class.path=%s)(?P<release>[0-9]+[.0-9]*(\\x00)+)?(?P<version>\\d+(\\.\\d)+[^\\x00]+)(\\x00openjdk)?(\\x00java)?\\x00",
"version_file": "../release",
"package": "JDK",
"supplier": "JDK",
"type": "BINARY",
"metadata_type": "JAVA_RUNTIME_BINARY",
"company_type": "开源",
"relative_directory_hierarchy": "../",
"mig_process_type": 0
},
],
"middleware_jar_classifiers": [
{
"cli_category": "MIDDLEWARE",
"category": 3,
"file_glob": "**/weblogic.jar",
"version_pattern": "(?m)Implementation-Version: (?P<version>[0-9]+[.0-9]*)",
"version_file": "MANIFEST.MF",
"package": "WebLogic",
"supplier": "Oracle Corporation",
"type": "BINARY",
"metadata_type": "MIDDLEWARE_WEB_WEBLOGIC",
"company_type": "商业",
"relative_directory_hierarchy": "../../../../../",
"mig_process_type": 0
},
],
}
```

包含以下类型，参数说明表1所示：

  - linux_binary_classifiers：Linux系统下，特征文件为二进制文件、文本文件等，非压缩文件的软件。
  - middleware_jar_classifiers：Linux系统下，特征文件为JAR包形式，需要解压的软件。

**表1 配置规则说明**

| 参数 | 参数选项 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| cli\_category | APP\_JAVA/RUNTIME\_JAVA/MIDDLEWARE/DATABASE/HARDWARE/OS | 是 | 软件类别，配置为MIDDLEWARE。 APP\_JAVA：Java应用。 RUNTIME\_JAVA： JDK 。 MIDDLEWARE：中间件。 DATABASE：数据库。 HARDWARE：硬件。 OS：操作系统。 |
| category | 1/2/3/4 | 是 | 软件类别，配置为3。 1：操作系统。 2：数据库。 3：中间件。 4：Java应用。 |
| use\_file\_regex | true/false | 否 | 特征文件是否使用正则匹配，默认为false。 若为false：则file\_glob需要以\*\*/开头，然后填写具体文件路径。 若为true：则file\_glob需要配置对应的正则表达式。 |
| file\_glob | \- | 是 | 特征文件，用于标识软件和匹配软件版本。 例如：\*\*/nginx 说明： 版本匹配优先级从高到低为：file\_glob、version\_file。 |
| version\_pattern | \- | 是 | 版本。正则表达式，对特征文件进行正则匹配，若无可填空字符串。 |
| version\_file | \- | 否 | 版本文件名，用于匹配版本，middleware\_jar\_classifiers归类下必填。文件中包含该款软件的版本信息。 |
| package | \- | 是 | 软件官方名称，例如：Nginx。 |
| supplier | \- | 是 | 软件厂商名，例如：Nginx, Inc。 |
| type | BINARY | 是 | 软件类型，需要配置为BINARY。 |
| metadata\_type | DATABASE\_OTHER/MIDDLEWARE\_WEB\_OTHER | 是 | 软件归类。 数据库填写为DATABASE\_OTHER。 中间件填写为MIDDLEWARE\_WEB\_OTHER。 |
| company\_type | 自有/开源/商业/\-\- | 是 | 是否开源。 |
| relative\_directory\_hierarchy | \- | 是 | 安装目录。通过file\_glob找到的特征文件的相对路径。 例如：安装目录为特征文件上层目录，则填写../。 |
| mig\_process\_type | 0/1 | 是 | 用于标识中间件迁移流程。 0：已支持的迁移路线。 1：当中间件由Java语言实现，支持跨平台迁移，遵循通用中间件迁移流程。 |


4. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
