mcpField
1
111-java-maven-dependencies

111-java-maven-dependencies

github.com/jabrena开发456391 次安装1 天前更新
代码仓库

关于 111-java-maven-dependencies

面向 Java Maven 项目的交互式技能,用于添加用户选定的代码质量与领域建模依赖。它会先验证项目,再询问依赖选择,并且只应用已选项。

主要功能

  1. 01变更前执行 Maven 验证
  2. 02通过问答选择依赖
  3. 03配置 JSpecify 与 NullAway
  4. 04支持 VAVR 函数式编程
  5. 05添加 ArchUnit 与 JavaMoney

适用场景

  1. 01添加空值注解和编译期检查
  2. 02引入函数式类型与不可变集合
  3. 03在测试中执行架构规则
  4. 04在 Java 中建模金额与货币

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jabrena/plinth --skill 111-java-maven-dependencies

安装后在 Claude Code 中输入/111-java-maven-dependencies确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
111-java-maven-dependencies-archunit.md
111-java-maven-dependencies-vavr.md
111-java-maven-dependencies-javamoney.md
111-java-maven-dependencies-jspecify.md

详细介绍

添加 Maven 依赖以提升代码质量

通过以咨询为导向、以问题引导的方式,添加必要的 Maven 依赖,以提升代码质量、安全性和领域建模能力。这是一个交互式 SKILL。

此 Skill 涵盖哪些内容?

  • JSpecify:(空值注解,provided 作用域)
  • Error Prone + NullAway:(增强静态分析,并在编译时检查空值)
  • VAVR:(使用 Try/Either 和不可变集合进行函数式编程)
  • ArchUnit:(强制执行架构规则,test 作用域)
  • JavaMoney:(通过 JSR 354 和 Moneta 提供 Money 和 Currency API 支持)

约束

添加 Maven 依赖之前,确保项目处于有效状态。采用以咨询为导向、以问题引导的流程,只添加用户选择的依赖。

  • MANDATORY:在进行任何更改之前,运行 ./mvnw validate 或 mvn validate
  • SAFETY:如果验证失败,请停止并要求用户修复问题;问题解决之前不得继续
  • 读取依赖参考资料之前:先运行嵌入此 SKILL.md 的提问流程。先提出一个涵盖依赖选择的综合问题,再仅针对用户所选选项提出必要的条件性后续问题。只读取用户回答所选依赖的参考资料。使用咨询式措辞,说明权衡,并等待用户回复后再实施

何时使用此 Skill

  • 添加 Maven 依赖
  • 添加 JSpecify 空值依赖
  • 添加 Error Prone NullAway 依赖
  • 添加 VAVR 函数式依赖
  • 添加 ArchUnit 架构测试依赖
  • 添加 JavaMoney 依赖

工作流

  1. 在更改前验证项目

运行 ./mvnw validate 或 mvn validate;如果验证失败,则停止。

  1. 读取参考资料前询问依赖评估问题

在读取任何依赖实现参考资料前,先按此 XML 中包含的问题流程提问。首先提出整合后的依赖选择问题,等待用户回答,并记录所选依赖系列后再继续。仅在所选依赖需要时提出条件式后续问题。

问题 1:你想添加哪些代码质量依赖?

选项:

  • JSpecify(现代空值注解,provided 作用域;推荐新项目使用)
  • Error Prone + NullAway(增强编译器分析和编译时空值检查;需要 JSpecify)
  • VAVR(函数式编程支持,提供 Try/Either 和不可变集合)
  • ArchUnit(使用 JUnit 5 进行架构测试,test 作用域)
  • JavaMoney(通过 JSR 354 和 Moneta 提供 Money 和 Currency API 支持)
  • 无
  • 其他(请说明)

建议:选择 JSpecify 以获得更好的空值安全注解。需要更强的编译时分析时,可添加 Error Prone + NullAway。仅在项目需要函数式编程模式时添加 VAVR。需要自动化架构治理时添加 ArchUnit。当领域需要明确的货币金额、货币种类、格式化、换算或精度安全的货币计算时,添加 JavaMoney。

选择说明:

  • 如果选择 Error Prone + NullAway,也要选择 JSpecify,除非项目已配置等效的空值注解。
  • 如果选择“无”,则不要添加依赖系列参考资料。

问题 2(条件式):你的项目主包名是什么?

注意:仅在选择了 Error Prone + NullAway 时才会询问此问题。

配置 NullAway 以分析你的代码需要此信息。例如,如果你的类位于 com.example.myproject 中,请输入 com.example.myproject。

格式:使用点号表示法(例如 com.example.myproject 或 org.mycompany.myapp)

示例:com.example.myproject

回答所有适用问题后,确认所选项并将其映射到参考资料:

  • 如果选择了 JSpecify,请阅读 references/111-java-maven-dependencies-jspecify.md。
  • 如果选择了增强编译器分析,请使用 references/111-java-maven-dependencies-jspecify.md 中的 Error Prone + NullAway 部分。
  • 如果选择了 VAVR,请阅读 references/111-java-maven-dependencies-vavr.md。
  • 如果选择了 ArchUnit,请阅读 references/111-java-maven-dependencies-archunit.md。
  • 如果选择了 JavaMoney,请阅读 references/111-java-maven-dependencies-javamoney.md。
  • 不要读取或应用未选择的依赖系列参考资料。
  1. 阅读所选参考资料并仅添加所选依赖

仅阅读所选依赖系列的参考资料,然后仅实现用户所选的依赖、属性、作用域、插件配置和支持文件,同时保留现有的 pom.xml 结构。

  1. 说明权衡并进行后续检查

总结添加了哪些内容、添加原因,以及建议进行的后续验证或工具链对齐工作。

参考资料

详细指南、示例和约束请参阅:

评论

支持 Markdown