# @abapify/adt-cli 中文文档

规范地址：https://npmcn.com/package/%40abapify/adt-cli/

版本：0\.4\.34
npm 元数据更新时间：2026-11-02T23:21:24.678Z
中文译文更新时间：2026-11-06T18:37:23.720Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40abapify/adt-cli
原文对照：https://npmcn.com/package/%40abapify/adt-cli/?lang=original
项目主页：https://github.com/abapify/adt-cli/tree/main/packages/adt-cli#readme
源码仓库：https://github.com/abapify/adt-cli

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1 MB，14 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：35 个
- 首次发布：2026-04-20T21:12:55.528Z
- 最新版本发布：2026-11-02T23:21:24.183Z
- 近 30 天下载量：2475（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：30（近 12 个月 30 个）

## 中文简介

SAP ABAP 开发工具的命令行界面 — 附加二进制, 加插件加载器和顶级服务层

## 安装

```sh
npm install @abapify/adt-cli
```

也可以使用：`pnpm add @abapify/adt-cli`、`yarn add @abapify/adt-cli`、`bun add @abapify/adt-cli`

## README

# @abapify/adt-cli (英语)

[![version](https://img.shields.io/github/package-json/v/abapify/adt-cli?filename=packages/adt-cli/package.json)](https://github.com/abapify/adt-cli/pkgs/npm/%40abapify%2Fadt-cli)

SAP ABAP开发工具(ADT)REST APIs的命令行界面.

部分 [生化单体](https://npmcn.com/package/README.md)。 。 。 .

## 安装

```bash
npm install -g @abapify/adt-cli
```

或者不安装就运行 :

```bash
npx @abapify/adt-cli <command>
```

## 快速启动

```bash
# Authenticate with a BTP service key
adt auth login --file ./service-key.json

# Discover available ADT services
adt discovery

# List transport requests
adt transport list

# Get object details
adt get ZCL_MY_CLASS --properties

# Show object structure as a tree
adt outline ZIF_MY_INTERFACE

# Import a package from SAP to local files
adt import package ZTEST_PKG

# Export local files back to SAP
adt export package ZTEST_PKG ./abapgit-ztest_pkg --create --transport NPLK900123
```

## 图标

### 认证

#### `adt auth login --file <path>`

使用 BTP 服务密钥文件( OAuth 2. 0 + PKCE) 认证 .

```bash
adt auth login --file ./secrets/service-key.json
```

服务密钥格式 :

```json
{
  "clientid": "...",
  "clientsecret": "...",
  "url": "https://your-btp-instance.cfapps.eu10.hana.ondemand.com",
  "endpoints": {
    "abap": "https://your-abap-system.cfapps.eu10.hana.ondemand.com"
  },
  "uaadomain": "authentication.eu10.hana.ondemand.com"
}
```

托肯存储在 `~/.config/adt-cli/` (Linux/macOS)或 缩写 `%APPDATA%/adt-cli/` (温道.

#### `adt auth logout`

清除存储的认证符 .

### 服务发现

#### `adt discovery [options]`

列出可用的 ADT 服务和端点 .

| 选项 | 说明 |
| --- | --- |
| `-o, --output <file>` | 保存输出.. `.xml` 用于生 XML, `.json` 用于解析 JSON |

```bash
adt discovery
adt discovery -o services.json
```

### 软件包导入/导出

#### `adt import package <packageName> [targetFolder] [options]`

从 SAP 下载 ABAP 软件包到本地文件 .

| 选项 | 说明 |
| --- | --- |
| `-o, --output <path>` | 输出目录 |
| `-t, --object-types <types>` | 逗号分离类型,例如:. `CLAS,INTF` |
| `--sub-packages` | 包含子包 |
| `--format <format>` | `abapgit` (默认) |
| `--debug` | 除错输出 |

```bash
adt import package ZTEST_PKG
adt import package ZTEST_PKG --object-types CLAS,INTF --format abapgit
```

#### `adt export package <packageName> [sourceFolder] [options]`

向 SAP 部署本地文件 .

| 选项 | 说明 |
| --- | --- |
| `-i, --input <path>` | 输入目录 |
| `-t, --object-types <types>` | 按类型过滤 |
| `--transport <request>` | 运输请求 |
| `--create` | 应用更改( 默认为干运行) |
| `--debug` | 除错输出 |

```bash
# Dry run
adt export package ZTEST_PKG ./abapgit-ztest_pkg

# Deploy with transport
adt export package ZTEST_PKG ./abapgit-ztest_pkg --create --transport NPLK900123
```

### 对象检查

#### `adt get <object> [options]`

获取 ABAP 对象的细节 。 支持的类型 : `CLAS`, (中文(简体) ), `INTF`, (中文(简体) ), `DEVC`。 。 。 .

| 选项 | 说明 |
| --- | --- |
| `--source` | 显示源代码预览 |
| `--structure` | 显示对象结构 |
| `--properties` | 显示软件包等级和应用程序组件 |
| `--json` | JSON 输出 |
| `-o, --output <file>` | 保存 ADT XML 到文件 |

```bash
adt get ZCL_MY_CLASS
adt get ZCL_MY_CLASS --properties
adt get ZCL_MY_CLASS -o tmp/class.xml
```

#### `adt check <object...> [options]`

运行 SAP APT 语法检查 。 使用不活动检查现有对象 默认源; 明确选择另一个源 `--source-version active|inactive|new`。名称避免与 根号 `adt --version` 旗帜.

与 `--json`, Stdout 只包含报表数组。 SAP 错误/损坏消息 (单位:千美元)`E`编号 :`A`保持JSON的可读性并设定非零过程退出状态.

```bash
adt check ZCL_MY_CLASS --type CLAS
adt check ZCL_MY_CLASS --type CLAS --source-version active --json
```

#### `adt outline <object>`

将对象结构显示为树(方法,属性,能见度).

```
ℹ️  ZIF_MY_INTERFACE [interface]
├─ 🟢  GET_DATA [public method]
└─ 🔴  INTERNAL_HELPER [private method]
```

### 运输请求

`adt transport` 已经 `adt tr` 作为别名.

#### `adt transport list [options]`

| 选项 | 说明 |
| --- | --- |
| `-u, --user <user>` | 按用户过滤 |
| `-s, --status <status>` | `modifiable` 或者说 `released` |
| `-m, --max <n>` | 最大结果( 默认: 50) |

#### `adt transport get <tr-number> [options]`

获取运输请求或任务的细节.

| 选项 | 说明 |
| --- | --- |
| `--tasks` | 包含任务细节 |
| `--json` | JSON 输出 |

#### `adt transport create [options]`

| 选项 | 说明 |
| --- | --- |
| `-d, --description <desc>` | 说明(所需) |
| `-t, --type <type>` | `K` (Workbench,默认)或 `W` (自定义) |
| `--target <target>` | 目标系统( 默认 : `LOCAL`(中文(简体) ) |

#### `adt cts tr task create <transport> <owner> [options]`

在现有请求下创建一个可修改的任务,并通过 从 SAP 读取父请求.

```bash
adt cts tr task create DEVK900001 DEVELOPER
adt cts tr task create DEVK900001 DEVELOPER --json
```

| 选项 | 说明 |
| --- | --- |
| `--json` | JSON的结晶结果 |

### 精确源代码历史

源历史指令遵循SAP ADT返回的不可变链接. 列名 版本和只构建一个显示返回元数据和出处; ABAP 来源仅通过明文下载 `source version get` 命令.

```bash
# List every source component and its immutable version metadata
adt source versions ZCL_MY_CLASS --type CLAS --json

# Restrict the listing to one exact component id
adt source versions ZCL_MY_CLASS --type CLAS \
  --component implementations --json

# Read one immutable version to stdout or a file
adt source version get --uri /sap/bc/adt/.../versions/2 --output -
adt source version get --uri /sap/bc/adt/.../versions/2 --output before.abap

# Build one metadata-only manifest for an ordered transport set
adt cts tr source-manifest DEVK900001,DEVK900002 --json
adt cts tr source-manifest DEVK900001 \
  --also-transport DEVK900002,DEVK900003 --json
```

每一表列部分都有明确的状态:

| 状态 | 含义 |
| --- | --- |
| `added` | 精确的镜内头存在且没有更古老的底座 |
| `modified` | 准确的基底和头被选中 |
| `deleted` | CTS 标记删除并存在精确可回收基数 |
| `unchanged` | 未显示源变化 |
| `ambiguous` | 证明或命令不能证明一个孤立的三角洲 |
| `unsupported` | SAP元数据显示没有可用的版本源组件 |
| `failed` | SAP拒绝该组件的元数据/历史检索 |

`ambiguous` 财务报告和审定财务报表 `unsupported` 明确非准确结果,并离开 命令成功。 如果有条目 `failed`完整清单仍然 打印,命令退出非零。 结构化产出和诊断从未 包括全权证书或来源机构.

## 配置

创建 `adt.config.ts` 在项目根中进行TypeScript配置,并进行完整的类型检查:

```typescript
import type { CliConfig } from '@abapify/adt-cli/config/interfaces';

const config: CliConfig = {
  auth: {
    type: 'btp',
    btp: {
      serviceKey: process.env.BTP_SERVICE_KEY_PATH || './service-key.json',
    },
  },
  defaults: {
    format: 'abapgit',
    outputPath: './output',
  },
};

export default config;
```

也支持YAML(`adt.config.yaml`) (中文(简体) ).

## 日志

```bash
# Set log level
ADT_LOG_LEVEL=debug adt discovery

# Enable verbose mode
adt transport list --verbose

# Filter log components
ADT_LOG_COMPONENTS=auth,http adt auth login --file service-key.json
```

可用的日志级别 : `trace`, (中文(简体) ), `debug`, (中文(简体) ), `info`, (中文(简体) ), `warn`, (中文(简体) ), `error`, (中文(简体) ), `fatal`。 。 。 .

对于SAP业务,它比本地的HTTP客户端需要更长的时间 响应标题超时, 设置正数 :

```bash
ADT_HEADERS_TIMEOUT_MS=900000 adt aunit --transport NPLK900042
```

让本地变量未设置( 或设置为空字符串) 默认——两者均得到同等待遇。 无效, 0, 或分数 值在请求发送前失败.

## 命令参考

| 命令 | 说明 |
| --- | --- |
| `adt auth login --file <path>` | 以 BTP 服务密钥认证 |
| `adt auth logout` | 清除已存储的令牌 |
| `adt discovery` | 列出可用的 ADT 服务 |
| `adt discovery -o file.json` | 作为 JSON 出口服务 |
| `adt get <object>` | 获取 ABAP 对象细节 |
| `adt get <object> --properties` | 显示软件包和组件信息 |
| `adt get <object> -o file.xml` | 保存 ADT XML 到文件 |
| `adt outline <object>` | 显示对象树结构 |
| `adt import package <pkg>` | 从SAP导入包 |
| `adt export package <pkg> --create` | 向 SAP 部署文件 |
| `adt transport list` | 列出运输请求 |
| `adt transport get <TR>` | 获取运输或任务细节 |
| `adt transport create -d "DESC"` | 创建新运输请求 |

## 建筑

```
adt-cli (Commander.js, plugin loader)
  ├── adt-client   (HTTP + auth interceptor)
  │     └── adt-contracts + adt-schemas
  ├── adk          (ABAP object parsing)
  ├── adt-auth     (session management)
  └── plugins      (adt-atc, adt-export, adt-plugin-abapgit)
```

## 许可证

麻省理工学院

## 常见问题

### @abapify/adt-cli 是什么？

SAP ABAP 开发工具的命令行界面 — 附加二进制, 加插件加载器和顶级服务层

### 如何安装 @abapify/adt-cli？

在项目目录运行 npm install @abapify/adt-cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 adt，可以用 npx adt 直接运行。

### @abapify/adt-cli 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @abapify/adt-cli 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @abapify/adt-cli 可以商用吗？

@abapify/adt-cli 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @abapify/adt-cli 的下载量有多少？

根据 npm 官方下载统计，@abapify/adt-cli 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,475 次，日均约 83 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @abapify/adt-cli 还在维护吗？

最新版本 0\.4\.34 发布于 2026/11/03（4 天前）；至今共发布 30 个版本，其中过去 12 个月发布了 30 个；首次发布于 2026/04/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

