u/systemhalted

▲ 10 r/emacs

sdkman.el — per-project SDKMAN environments in Emacs

SDKMAN points its current symlink at one global Java (or Maven, or Gradle) at a time, but projects often need different versions. sdkman.el reads the nearest .sdkmanrc and buffer-locally prepends each candidate's bin/ to PATH and exec-path, and sets JAVA_HOME / MAVEN_HOME / GRADLE_HOME to the project versions.

With lsp-java installed, it also points lsp-java-java-path at the project JDK and seeds lsp-java-configuration-runtimes, so JDT LS launches with the right Java per project.

GitHub: https://github.com/systemhalted/sdkman.el

v0.2.0 just shipped with M-x sdkman and uses a transient menu showing project status with read-only actions (open .sdkmanrc, show applied env, list installed candidates). Feedback on the UX especially welcome.

reddit.com
u/systemhalted — 3 days ago