主题
06 案例验证
全部案例通过 JCasC 的 job-dsl 种子任务自动创建,实际执行结果如下(2026-08-14)。
6.1 toolchain-check —— 工具链验证
并行在 5 个弹性 agent 模板上执行版本检查,结果 SUCCESS:
== Java 8 ==
openjdk version "1.8.0_492" Apache Maven 3.9.16
== Java 21 ==
openjdk version "21.0.11" 2026-04-21 LTS Apache Maven 3.9.16
== Node 21 ==
v21.7.3 npm 10.5.0 (registry: registry.npmmirror.com)
== Golang ==
go version go1.24.13 linux/amd64 (GOPROXY: goproxy.cn)
== Python ==
Python 3.12.13 pip 25.0.1 (index: mirrors.aliyun.com/pypi/simple)每个分支由 Kubernetes 插件动态创建对应 pod 模板(maven8/maven21/node21/golang/python), 构建结束自动销毁。观察到首次运行时个别 agent 因节点镜像未缓存出现 ErrImagePull 重试, 属正常现象(镜像拉取成功后自动恢复);可通过镜像预热消除(见性能优化章节)。
6.2 java-demo —— Java 21 Maven 构建
流水线:准备代码(从 /examples ConfigMap 复制)→ mvn clean package → junit 报告 + 归档 jar。
结果 SUCCESS:
- 依赖全部经阿里云镜像下载:
Downloading from aliyun-public: https://maven.aliyun.com/repository/public/... - 单元测试:passCount=4, failCount=0(junit 插件归档 surefire 报告)
- 产物
target/java-demo-1.0.0.jar已归档(Archive Artifacts + fingerprint)
示例项目源码:deploy/examples/java-demo/(App.java 提供 greet/add 方法,AppTest 4 个用例)。
6.3 sonarqube-demo —— SonarQube 代码扫描
流水线:准备代码 → withSonarQubeEnv('sonarqube') { mvn verify sonar:sonar } → waitForQualityGate。
结果 SUCCESS:
- Maven 日志:
BUILD SUCCESS,Analysis total time: 13.356 s - SonarQube 服务端自动创建项目
java-demo,分析结果:
| 指标 | 值 |
|---|---|
| ncloc | 49 |
| bugs | 0 |
| vulnerabilities | 0 |
| code_smells | 1 |
| 质量门禁 | OK(通过) |
- 质量门禁通过 SonarQube Webhook 秒级回调 Jenkins(配置见 04 文档 4.6 节)
验证命令:
bash
curl -s -u 'admin:xxx' \
'http://192.168.122.23:30900/api/measures/component?component=java-demo&metricKeys=bugs,vulnerabilities,code_smells,ncloc,alert_status'6.4 手动操作入口
| 操作 | 方式 |
|---|---|
| 触发构建 | UI: http://192.168.122.23:30880/job/<name>/build 或 API POST /job/<name>/build(需 crumb) |
| 查看日志 | curl -u admin:xxx http://192.168.122.23:30880/job/<name>/lastBuild/consoleText |
| SonarQube 报告 | http://192.168.122.23:30900/dashboard?id=java-demo |