# 111-java-maven-dependencies

Добавляет в pom.xml зависимости для качества кода: JSpecify, Error Prone с NullAway, VAVR, ArchUnit, JavaMoney. Спрашивает, что нужно, и ставит только выбранное.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 388 установок · ★ 456
- Автор: Juan Antonio Breña Moral
- Лицензия: Apache-2.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/jabrena/plinth/tree/HEAD/skills/111-java-maven-dependencies/SKILL.md
- Обновлён: 2026-10-21
- HTML: https://affpapa.org/nevibecode/skills/111-java-maven-dependencies

## Что делает

Скилл ведёт диалог, а не правит `pom.xml` молча. Сначала он просит выбрать семейства зависимостей: JSpecify для аннотаций nullness в scope `provided`, Error Prone вместе с NullAway для проверки null на этапе компиляции, VAVR для функциональных типов Try/Either и неизменяемых коллекций, ArchUnit для тестов архитектуры в scope `test`, JavaMoney для денег и валют по JSR 354 с Moneta. Есть вариант «None» и «Other».

Дальше вопросы задаются по выбору. Если вы отметили Error Prone + NullAway, скилл спросит имя основного пакета проекта в точечной нотации — оно нужно, чтобы NullAway анализировал ваш код. Без JSpecify этот набор не ставится: скилл попросит добавить его, если в проекте нет своих аннотаций nullness. Ссылки на реализацию читаются только для выбранных семейств, остальные не трогаются.

Перед любыми изменениями скилл запускает `./mvnw validate` или `mvn validate`. Если валидация падает, работа останавливается — сначала чините проект. Это разумно: правки в сломанном `pom.xml` потом трудно откатывать. В конце скилл перечисляет, что добавил и какие проверки стоит прогнать следом.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 111-java-maven-dependencies -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/111-java-maven-dependencies/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/111-java-maven-dependencies/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 111-java-maven-dependencies -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/111-java-maven-dependencies/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 111-java-maven-dependencies -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/111-java-maven-dependencies/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install jabrena/plinth 111-java-maven-dependencies
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/111-java-maven-dependencies/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 111-java-maven-dependencies -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/jabrena/plinth --path skills/111-java-maven-dependencies
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/111-java-maven-dependencies/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add jabrena/plinth --skill 111-java-maven-dependencies -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/jabrena/plinth/tree/HEAD/skills/111-java-maven-dependencies/SKILL.md

## Когда брать
- добавить аннотации nullness JSpecify в scope `provided`
- включить Error Prone и NullAway с проверкой null на компиляции
- подключить VAVR для Try/Either и неизменяемых коллекций
- настроить ArchUnit для проверки правил архитектуры в тестах
- добавить JavaMoney для точных расчётов с деньгами и валютами

## Примеры запросов агенту
- Добавь в проект Maven-зависимости для качества кода, сначала спроси, какие семейства мне нужны
- Подключи JSpecify и Error Prone с NullAway, основной пакет `com.example.myproject`
- Добавь ArchUnit в scope `test` и JavaMoney для работы с деньгами

## Похожие
- [java-junit](https://affpapa.org/nevibecode/skills/java-junit.md) — скилл · 11632 установки
- [java-upgrade](https://affpapa.org/nevibecode/skills/java-upgrade.md) — скилл · 6 установок
- [java-architect](https://affpapa.org/nevibecode/skills/java-architect.md) — скилл · 6000 установок
- [java-migration](https://affpapa.org/nevibecode/skills/java-migration.md) — скилл · 321 установка
- [clean-architecture](https://affpapa.org/nevibecode/skills/giuseppe-trisciuoglio-clean-architecture.md) — скилл · 4000 установок
- [unit-test-parameterized](https://affpapa.org/nevibecode/skills/unit-test-parameterized.md) — скилл · 3800 установок

Из того же набора: [jabrena/plinth](https://affpapa.org/nevibecode/by/jabrena/plinth.md) — 40 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
