用途
generate-classes 用于从 DSL 脚本生成字节码类,并导出 .class 文件供检查。它运行 v2 编译器(ANTLR4 + Javassist)。
主要能力
按参数生成不同的 DSL 类:
mal — MAL 表达式类
./mvnw test -pl oap-server/analyzer/dsl-scripts-test \
-Dtest=MALExpressionExecutionTest -DfailIfNoTests=false -Dcheckstyle.skip
输出位置:oap-server/analyzer/dsl-scripts-test/src/test/resources/scripts/mal/**/*.generated-classes/
oal — OAL 指标/分发器/构建器类
./mvnw test -pl oap-server/oal-rt \
-Dtest=RuntimeOALGenerationTest -DfailIfNoTests=false -Dcheckstyle.skip
输出位置:oap-server/oal-rt/target/test-classes/metrics/、metrics/builder/、dispatcher/
lal — LAL 过滤/提取类
./mvnw test -pl oap-server/analyzer/dsl-scripts-test \
-Dtest=LALExpressionExecutionTest -DfailIfNoTests=false -Dcheckstyle.skip
输出位置:oap-server/analyzer/dsl-scripts-test/src/test/resources/scripts/lal/**/*.generated-classes/
hierarchy — Hierarchy 规则类
./mvnw test -pl oap-server/analyzer/dsl-scripts-test \
-Dtest=HierarchyRuleExecutionTest -DfailIfNoTests=false -Dcheckstyle.skip
输出位置:oap-server/analyzer/dsl-scripts-test/src/test/resources/scripts/hierarchy-rule/*.generated-classes/
all 或不带参数 — 生成全部 DSL
依次运行上述四条命令。
使用方式
生成完成后,会打印所请求 DSL 的输出位置,以便用户找到生成的 .class 文件。使用 javap 反编译:
javap -c -p <path-to-class-file>
清理生成的类:
./mvnw clean -pl oap-server/analyzer/dsl-scripts-test
适用场景
需要检查从 DSL 脚本编译出的字节码、验证编译器输出结构时使用。
限制
仅提供以上参数与命令,未提供其他 DSL 类型、图形界面、自动化流程或性能相关说明。