felipebz/zpa
GitHub: felipebz/zpa
专为 Oracle PL/SQL 设计的静态代码分析工具,可无缝集成 SonarQube 实现数据库代码质量门禁。
Stars: 237 | Forks: 81
# ZPA
[ ](https://github.com/felipebz/zpa/releases/latest)
[](https://github.com/felipebz/zpa/actions/workflows/build.yml)
[](https://sonarqube.felipebz.com/dashboard?id=com.felipebz.zpa%3Azpa)
ZPA 是 PL/SQL 和 Oracle SQL 的解析器及静态代码分析工具。
你可以在 [SonarQube](https://www.sonarqube.org) 本地实例中使用它。SonarQube 是一个用于管理代码质量的开放平台。
请查看我们的 [SonarQube 实例](https://sonarqube.felipebz.com/projects?languages=plsqlopen) 中的一些示例!
想在托管于 [SonarCloud](https://sonarcloud.io) 的项目中使用此分析器吗?试试 [zpa-cli](https://github.com/felipebz/zpa-cli) 吧!
## 安装说明
- 下载 [最新的 sonar-zpa-plugin 版本](https://github.com/felipebz/zpa/releases/latest) 并复制到 SONARQUBE_HOME/extensions/plugins 目录;
- 重启 SonarQube 服务器;
- 导航到 Marketplace (SONARQUBE_URL/marketplace?filter=installed)。它应该在 "Installed Plugins" 标签页下列出 "ZPA";
- 使用 [SonarScanner](https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/overview/) 运行分析。
## 兼容性矩阵
| ZPA 版本 | SonarQube 版本 (最小/最大) |
|------------------------|-----------------------------|
| 4.0.0 | 25.2 / 25.10 |
| 4.1.0 (开发中) | 25.8 / 26.1 |
## ZPA Toolkit
ZPA Toolkit 是一个可视化工具,用于查看解析器生成的 AST (抽象语法树) 和符号表。

最新的 ZPA Toolkit 可以从 [发布页面](https://github.com/felipebz/zpa/releases/latest) 下载,它需要 JDK 11 或更新版本。
### 运行集成测试
有两组集成测试:
- [sonar-zpa-plugin/integrationTest](https://github.com/felipebz/zpa/tree/main/sonar-zpa-plugin/src/integrationTest):检查指标是否正确导入到 SonarQube 中
- [zpa-checks/integrationTest](https://github.com/felipebz/zpa/tree/main/zpa-checks/src/integrationTest):针对真实代码检查解析器和规则的质量
要运行集成测试,首先更新子模块:
```
git submodule update --init --recursive
```
构建主插件和自定义规则示例:
```
./gradlew build publishToMavenLocal
./gradlew build -p plsql-custom-rules
```
然后运行测试:
```
./gradlew integrationTest
```
默认情况下,测试将使用 SonarQube Community Build 25.8 执行。你可以使用属性 `sonar.runtimeVersion` 更改 SonarQube 版本,传递格式为 `LATEST_RELEASE[number]` 的值,例如 `LATEST_RELEASE[25.3]`,或者 `a.b.c.d` 表示包含内部版本号的精确版本:
```
./gradlew integrationTest -Dsonar.runtimeVersion=LATEST_RELEASE[25.8]
```
标签:JS文件枚举, Kafka, Oracle SQL, PL/SQL, SAST, SonarQube插件, ZPA, 代码规范, 后台面板检测, 安全专业人员, 数据库开发, 盲注攻击, 语法分析器, 错误基检测, 静态代码分析