
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
CodeNarc是一款针对Groovy语言的静态代码分析工具,可检测代码中的风格违规、潜在错误、未使用变量、复杂逻辑等问题,帮助团队提升代码质量。CodeNarc Docker镜像将CodeNarc及其运行依赖(如Groovy环境)封装为容器,用户无需在本地安装配置相关依赖,即可通过Docker快速启动代码分析任务,有效解决环境差异导致的分析结果不一致问题,简化代码质量检查流程。
codenarc.xml),灵活定义团队代码规范,满足个性化检查需求。拉取镜像
从Docker仓库拉取CodeNarc镜像(以下示例假设镜像名为codenarc:latest,实际使用时需替换为具体仓库地址):
bashdocker pull codenarc:latest
运行基础代码分析
分析本地Groovy代码目录,使用默认规则输出结果到控制台:
bashdocker run --rm -v "$(pwd)/src/main/groovy:/code" codenarc:latest --source /code
--rm:容器运行后自动删除,避免残留容器文件。-v "$(pwd)/src/main/groovy:/code":将本地Groovy代码目录(示例为当前目录下的src/main/groovy)挂载到容器内的/code路径(容器内固定分析目录)。--source /code:指定CodeNarc分析的源代码目录(需与容器内挂载路径一致)。1. 使用自定义规则配置文件
若需使用团队自定义规则,将本地规则文件(如./config/codenarc.xml)挂载到容器,并通过--rulesetfiles参数指定:
bashdocker run --rm \ -v "$(pwd)/src/main/groovy:/code" \ -v "$(pwd)/config/codenarc.xml:/config/codenarc.xml" \ codenarc:latest \ --source /code \ --rulesetfiles file:/config/codenarc.xml
file:/config/codenarc.xml:容器内规则文件路径,需与挂载路径对应。2. 生成HTML格式报告
指定输出HTML报告到本地目录(如./reports),便于直观查看分析结果:
bashdocker run --rm \ -v "$(pwd)/src/main/groovy:/code" \ -v "$(pwd)/reports:/reports" \ codenarc:latest \ --source /code \ --report html:/reports/codenarc-report.html
执行后,报告将生成在本地./reports/codenarc-report.html,可通过浏览器打开查看详细分析结果(含违规代码位置、规则说明等)。
3. 设置违规数量阈值(CI场景)
通过--maxPriority1Violations等参数设置严重违规数量阈值,超过阈值时容器返回非0退出码,触发CI流程中断:
bashdocker run --rm \ -v "$(pwd)/src/main/groovy:/code" \ codenarc:latest \ --source /code \ --maxPriority1Violations 0 # 不允许优先级1(严重)违规 --maxPriority2Violations 5 # 允许最多5个优先级2(中等)违规
CodeNarc支持多种命令行参数,常用参数如下:
| 参数 | 说明 |
|---|---|
--source <path> | 必选,指定容器内待分析的源代码目录路径(需通过-v挂载本地目录)。 |
--rulesetfiles <paths> | 可选,指定规则配置文件路径(多个文件用逗号分隔),默认使用内置基础规则。 |
--report <format:path> | 可选,指定报告格式及路径,支持html/xml/text/console等格式。 |
--maxPriority1Violations <num> | 可选,优先级1(严重)违规的最大允许数量,超过返回非0退出码。 |
--maxPriority2Violations <num> | 可选,优先级2(中等)违规的最大允许数量,超过返回非0退出码。 |
--maxPriority3Violations <num> | 可选,优先级3(轻微)违规的最大允许数量,超过返回非0退出码。 |
规则配置文件(codenarc.xml)用于定义检查规则,示例结构如下:
xml<?xml version="1.0"?> <codenarc> <ruleset name="My Project Rules"> <!-- 禁止未使用变量 --> <rule class="org.codenarc.rule.unused.UnusedVariableRule" priority="2"/> <!-- 禁止空catch块 --> <rule class="org.codenarc.rule.exceptions.EmptyCatchBlockRule" priority="1"/> <!-- 方法最大行数限制(自定义参数) --> <rule class="org.codenarc.rule.size.MethodSizeRule" priority="3"> <property name="maxLines" value="50"/> <!-- 方法最大行数为50行 --> </rule> </ruleset> </codenarc>
更多规则及配置细节可参考https://codenarc.github.io/CodeNarc/%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务