You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: claude-plugins/spring-boot/README.md
+20-17Lines changed: 20 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,39 +11,44 @@ Unlike the VS Code extension, this plugin uses the **standalone** variant of the
11
11
12
12
## Usage
13
13
14
-
### Installation
14
+
### 1. Add the Marketplace
15
15
16
-
To install the latest release of the plugin from the official Spring Marketplace:
16
+
First, add either the Release or Snapshot marketplace to Claude Code:
17
17
18
+
**To use the stable release:**
18
19
```bash
19
20
claude plugin marketplace add https://cdn.spring.io/spring-tools/release/claude-plugins/marketplace.json
20
-
claude plugin install spring-boot@spring-tools-marketplace
21
21
```
22
22
23
-
To install the bleeding-edge snapshot:
24
-
23
+
**To use the bleeding-edge snapshot:**
25
24
```bash
26
25
claude plugin marketplace add https://cdn.spring.io/spring-tools/snapshot/claude-plugins/marketplace.json
27
-
claude plugin install spring-boot@spring-tools-snapshots
28
26
```
29
27
30
-
### During development / testing
28
+
### 2. Install the Plugin
31
29
32
-
To test this plugin locally, you can use Claude Code's native `git-subdir` marketplace functionality or a relative path directly to this repository:
30
+
Once the marketplace is added, install the plugin:
33
31
34
-
1. Build the standalone language server jar from the `sts4` repository.
35
-
2. Copy the jar into this plugin's `language-server/` directory.
36
-
3. Run: `claude plugin install . --scope local` from this directory.
32
+
**If you added the stable release marketplace:**
33
+
```bash
34
+
claude plugin install spring-boot@spring-tools-marketplace
35
+
```
37
36
38
-
### Updating the plugin
37
+
**If you added the snapshot marketplace:**
38
+
```bash
39
+
claude plugin install spring-boot@spring-tools-snapshots
40
+
```
39
41
40
-
If you make changes to the `.lsp.json` or plugin manifest, you may need to update the installation:
42
+
### 3. Update the Plugin
43
+
44
+
When new versions of the plugin are published to the marketplace, update it by running:
41
45
42
46
```bash
47
+
claude plugin marketplace update
43
48
claude plugin update spring-boot
44
49
```
45
50
46
-
### Testing the LSP Plugin
51
+
### 4. Testing the LSP Plugin
47
52
48
53
To verify that the Spring Boot Language Server is correctly booting up and providing diagnostics to Claude Code, you must run Claude Code **interactively** (don't use the `-p` single-shot flag, as it will kill the CLI before the LSP finishes initializing).
49
54
@@ -52,7 +57,7 @@ Open a Spring Boot project and start Claude Code:
52
57
claude
53
58
```
54
59
55
-
Then, ask Claude to open a file and check the diagnostics. For example:
60
+
Then, ask Claude a test query to verify the LSP integration. For example:
56
61
> "Open CoffeeController.java and tell me what the Spring Boot LSP says about the @GetMapping version attribute."
57
62
58
63
Claude will wait for the LSP to initialize, read the file, and then summarize the exact Spring Boot warnings and quick fixes provided by the Language Server.
@@ -86,5 +91,3 @@ To eliminate race conditions and avoid booting multiple heavy Java processes, th
86
91
87
92
1.**MCP starts the server:** Claude Code parses `.mcp.json` at startup. This triggers `launcher.js`, which checks if the heavy Java JAR is downloaded. If not, it executes `install.js` to download it from Spring's CDN. Then it boots the standalone Spring Boot Language Server, instructing it to expose its MCP tools over `stdio` and its LSP over a local TCP socket (port 5007).
88
93
2.**LSP connects via proxy:** When you open a relevant file (e.g. `.java`, `.properties`), Claude Code parses `.lsp.json` and starts `proxy.js` as its "LSP process". This lightweight Node.js script simply forwards Claude Code's standard input/output streams to the already-running Java process on port 5007, avoiding the need to spawn a second JVM.
89
-
90
-
The standalone LS uses `MavenProjectCache` and `GradleProjectCache` to scan the workspace for `pom.xml` and `build.gradle` files, discovering projects without JDT LS. All type indexing is done locally using [Jandex](https://smallrye.io/jandex/).
0 commit comments