Maven repositories - #121
Conversation
5ea7908 to
b0086dd
Compare
|
LGTM but before I merge I want to run skill creator skill to double check those changes |
|
Skill creator suggested leaving example block because it tell agent how it can grep it further etc. |
|
|
||
| Run `cellar --version` to verify cellar is on PATH. If not found, the user | ||
| needs to install it: https://github.com/VirtusLab/cellar#installation | ||
| Look up JVM dependency APIs from the terminal. NEVER download or unpack JARs manually. |
There was a problem hiding this comment.
Skill-creator suggested that leaving a reason will hold better and have better results
| Prefer cellar **only** for external dependency API lookups (`cellar get-external` vs Metals `inspect`/`get-docs`): cellar requires no project import and works with any published Maven coordinate. For all other tasks — goto definition, find references, rename, diagnostics, compilation — use Metals. | ||
| cellar reads APIs, nothing else. | ||
| External coordinate → cellar. | ||
| Project classpath → Metals `inspect`/`get-docs`/`glob-search`, or cellar's project-aware commands when Metals is unavailable. |
There was a problem hiding this comment.
We have to be extra careful with metals.
I got some comments / feedback that when they used it with IJ, it tried to install metals or something because of our skill. I'd be very explicit here so something more like:
Project classpath:
Metals MCP server if available > cellar project-aware commands
Compile, references, tests, formatting are not supported by cellar
`MavenRepository.of` accepts any string verbatim, so a typo like a missing scheme survived until resolution failed — and it then failed as `CoordinateNotFound`, pointing at the coordinate with coordinate suggestions rather than at the repository that was actually wrong. Reject the URL at parse time instead: empty strings, unparseable URIs, a missing scheme, schemes other than http/https/file, and http(s) URLs with no host. The rejection reason carries no source prefix of its own, so the caller names where the URL came from; that keeps the config-file source #121 adds able to reuse the same check. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Add `maven.repositories`, extra repository URLs applied to every external command. CLI `-r` values are appended to the configured list, duplicates collapse ignoring a trailing slash. `Config.loadFrom` takes explicit file locations so tests never read the real user configuration.
b0086dd to
9750f85
Compare
|
Rebased. I removed the Here is the "backup", feel free to cherry-pick it if you want. I use it for almost a month now an it works as expected (tested with Claude Sonnet 5, Opus 5, GPT Luna, Sol and Grok 4.5), no need for examples. One thing I didn't test is IJ compatibility since I don't have any agentic plugin there. SKILL.md |
rewrite SKILL.md to be more concise / token efficient(I've been using this updated skill for more than a week, so I can confirm it works correctly)