- PVSM.RU - https://www.pvsm.ru -

Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно интегрируется с Spring Framework и знает его особенности.
Тогда зачем пробовать что‑то другое?
Привет! Меня зовут Константин Шибков, я Java‑разработчик в CDEK.
В какой‑то мере все Java‑разработчики стали заложниками IDEA. Она так привычна, что нет желания пробовать другое. Ведь всё такое удобное и знакомое за столько лет использования.
Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу — Visual Studio Code [1].
В статье делюсь опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
SonarLint [6]
Настройки VSCode [11]
Начнем с того, с чем работаю сейчас и чем пользуюсь часто в IntelliJ IDEA:
Java 17/21 + Kotlin
Spring Boot 3
Spring Initializr для создания новых проектов
многомодульные Maven/Gradle проекты
Postgres
MyBatis для работы с БД
Junit 5 + AssertJ
Copilot / GigaCode
Документация в MarkDown + AsciiDoc + PlantUML
Kubernetes
Попробуем найти аналоги или, возможно, для VSCode есть точно такие же расширения. Список всех использованных расширений — в конце статьи.
Для установки переходите на официальный сайт [1] и скачивайте дистрибутив для вашей ОС. Также можете использовать ваш пакетный менеджер. Для дистрибутивов на базе Linux предлагаю подробно изучить инструкции [13].
Особенности, которые выделил при работе с разными ОС:
Если у вас Windows — желательно использовать WSL 2 для работы с Linux средой. Таким образом решите проблемы при запуске.sh скриптов, которые может содержать ваш проект.
Если у вас установлен Code — OSS в Arch/Manjaro или дистрибутив, основанный на Arch, для включения официального магазина расширений VSCode установите из AUR pamac install code-marketplace. Это позволит избежать ошибки при установке расширений, например, Extension 'xxx' not found.
Если вы не нашли расширение через раздел Extensions в VSCode — скачайте файл расширения и установите вручную.
Существует два типа расширений: сами расширения и паки/ наборы расширений. Наборы устанавливают сразу пачку расширений, что упрощает установку. Но таким образом может быть установлено и что-то лишнее. Проверяйте содержание паков.
После установки, при первом запуске вас встретит чистый VSCode:
Еще немного про вариант работы Windows + WSL2. Если у вас не Windows — смело переходите к следующему разделу.
Особенность работы через WSL заключается в том, что VSCode у вас будет как бы дублирован. Одна версия VSCode будет установлена в Windows, а другая — в WSL. Это позволяет работать в среде Linux, не выходя из Windows и не используя GUI Linux.
По‑простому — в Windows у вас будет тонкий клиент, а все действия будут выполняться в WSL, то есть в Linux. Наборы расширений ставятся и настраиваются отдельно для WSL VSCode и для Windows VSCode. Вам необходимо ставить расширения после подключения к WSL.
В Windows откройте VSCode и подключитесь к WSL. Есть разные способы:
нажать на значок в нижнем левом углу с иконкой ><
вызвать палитру команд CTRL + SHIFT + P
и выбрать Connect to WSL using Distro…, после выбрать дистрибутив WSL.
Скачается VSCode для WSL, которая будет работать в WSL, а в Windows останется только тонкий клиент. После подключения можно продолжать работу.
Ставим минимальный набор расширений для Java. Это позволит проверять синтаксис, подсвечивать код, использовать автодополнение кода, запускать приложение и тесты; включит инструменты рефакторинга, режим отладки, поддержку Maven/Gradle.
⬇️ Страница пака Extension Pack for Java [14]
Каждое расширение можно установить разными способами:
Перейти во вкладку Extensions в интерфейсе приложений или через палитру действий CTRL + SHIFT + P / ⌘⇧P найти Install Extensions. Ввести название расширения для поиска. Выбрать расширение из списка и нажать Install.
Перейти на страницу расширения и нажать Install. Работает не во всех случаях.
Перейти на страницу расширения, в Resources разделе найти Download Extension. Получите .vsix файл, далее вызывайте палитру команд и найдите Extensions: Install from VSIX... — выберите скаченный файл и установите расширение.
После установки Extension Pack for Java вам будет предложено установить JDK или выбрать путь до уже установленного. Самый просто вариант, по мне — использовать https://sdkman.io [15].
Теперь можно проверить, как запускает Java код на этом этапе. Сделаем простой Hello, world!
Создайте новый файл в VSCode (можно снова использовать магическую палитру действий CTRL + SHIFT + P / ⌘⇧P ) и запустите команду New Java File.
Внесите в новый файл код:
class Main {
public static void main(String[] args) {
System.out.println("Hello VSCode!");
}
}
Сохраните файл под именем Main.java, и можно запускать. Первый вариант — через кнопку в интерфейсе или через хоткеи. Какие именно — можете посмотреть через палитру действий Help: Keyboard Shortcuts Reference, все также в магическом терминале :) Можете назначить свои, дальше мы поставим большинство хоткеев как в IDEA.
Можете проверить отладку. Установите breakpoint привычным способом — нажатием на область левее от номера строки, далее в меню Run выберите Debug Java.
Если всё работает — пора двигаться дальше и установить другие расширения.

Анализ кода, куда же без него. Ставим расширение SonarLint. Оно будет давать подсказки по коду, а также позволит подключить SonarQube сервер и выполнять проверки проекта с получением отчета.
⬇️ Страница SonarLint в магазине расширений [16]
Возможно, потребуется установка Node.js. Найдете подробности, как это сделать, на странице https://github.com/nodesource/distributions [17].
Для подключения SonarQube сервера следуйте по инструкции на скриншоте. Достаточно ввести адрес сервера — дальше получение токена будет произведено автоматически через авторизацию в браузере.
⬇️ Страница Spring Boot Extension Pack в магазине расширений [18]
После установки будет предложено создать пример проекта для тестирования расширения. Будет склонирован проект PetClinic в выбранную директорию.
Предлагаю так и сделать: создать проект, запустить и убедиться, что все работает. После клонирования необходимо будет подождать, пока проект проиндексируется и скачаются все зависимости.
Чтобы создать новый Java‑проект, перейдите в EXPLORER вкладку и найдите кнопку «создать новый проект». Дальше в интерактивном меню вы можете выбрать тип проекта, фреймворк или сборщик, а также — какими средствами его создать, включая Spring Initializr.
В пак также входит:
Spring Tools для работы с особенностями кода в Spring
Spring Initializr для упрощения создания нового проекта
Spring Dashboard для управления Spring Boot проектами: запуск приложения, список ендпоинтов, дебаг.
Можно настроить использование инициализации проекта с указанием сервера сборки шаблонного проекта.
Перейдите в настройки расширения Spring Initializr. Например, через шестеренку или через палитру.
Находите пункт Service Url, заходите в редактирование settings.json . Да, все настройки можно делать в текстовом файле формата JSON и не искать пункты в интерфейсе.
Прописывайте свое значение URL в параметр "spring.initializr.serviceUrl". Сохраняйте файл и теперь создавайте проекты, используя свой сервис сборки проектов.
{
"spring.initializr.serviceUrl": [
"https://start.my-spring.io"
]
}
Установите хоткеи, к которым привыкли, с помощью расширения:
⬇️ Страница IntelliJ IDEA Keybindings в магазине расширений [19]
Другие хоткеи вы можете настроить, открыв полный список горячих клавиш через пункт меню File → Preferences → Keyboard Shortcuts.
Если вам поможет стандартная тема из IDEA, тут она тоже есть:
⬇️ Страница Darcula IntelliJ Theme в магазине расширений [20]
Вы смотрите на файлы и не понимаете, что скрывается за значком? Просто верните привычный вид:
⬇️ Страница IDEA Icons in VSCode [21] в магазине расширений
Все предложенные расширения проверены лично. Использую в повседневной работе.
Выбирайте актуальные для вашего набора требований. Можете предлагать в комментариях лучшие аналоги или ваши must have расширения. Расширений очень много, и не всегда успеваешь следить за новыми :)
Extension Pack for Java [14] — базовая поддержка Java
Spring Boot Extension Pack [18] — поддержка Spring Boot экосистемы
SonarLint [16] — статический анализатор кода с поддержкой SonarQube
Gradle for Java [22] — расширенная поддержка Gradle
Google Cloud Code (для k8s) [23] — для просмотра сущностей Kubernetes, логов подов и прочее. Такой UI для kubectl
PlantUML [24] — поддержка синтаксиса для документов, экспорт диаграмм, рендер диаграмм
AsciiDoc [25] — поддержка синтаксиса документов.adoc и предпросмотр
GitLab Workflow — CR/CI/MR [26] — работайте с MR, проводите ревью кода прямо в VSCode
git‑log‑graph — визуализация веток и коммитов, cherry‑pick и т. д. [27] — аналог вкладки Git в Jetbrains продуктах
Docker [28] — работа с образами и контейнерами
Kubernetes [29] — варианта аналога kubectl
Swagger Viewer [30] — рендер OpenApi документации прямо в окне предпросмотра VSCode
AsyncAPI Preview [31] — рендер документации и просмотр в VSCode
XML [32] — расширенная поддержка XML формата
MybatisX [33] — автоматизация работы с MyBatis, линковка файлов, генерация блоков запросов. Полный аналог расширения для JetBrains
Auto Rename Tag [34] — позволяет быстро переименовывать открывающийся и закрывающийся тег
Spelling Checker [35] — базовый движок проверки орфографии
Russian — Code Spell Checker [36] — пакет русского языка для проверки орфографии
Inline SQL [37] — поддержка SQL синтаксиса внутри кода Java, Python и других
Bookmarks [38] — аналог закладок из JetBrains
Markdown All in One [39] — синтаксис, сниппеты, предпросмотр и автоматизация для md
Maven dependency explorer [40] — обзор зависимостей в UI
PostgreSQL Language Server [41] — расширенная поддержка особенностей языка PostgreSQL
GitHub Copilot [42] — AI ассистент
GigaCode [43] — бесплатный (пока) AI ассистент, доступный из РФ
Кроме базовых расширений вы можете настроить очень тонко VSCode под себя. Предложу несколько настроек, с которых можно начать.
Для начала: как зайти в настройки. Ещё раз прописываю все варианты для изменения настроек через UI:
хоткей CTRL + , / ⌘,
File → Preferences → Settings
палитра команд CTRL + SHIFT + P / ⌘ ⇧ P и далее найдите Preferences: Open Settings (Ul)
Для редактирования настроек напрямую через settings.json:
палитра команд — Preferences: Open User Settings (JSON)
через Settings вкладку UI и дальше кнопка Открыть settings.json

Откройте настройки
Найдите пункт Auto Save
Установите значение в onFocusChange или afterDelay или другое, подходящее для вас.
{
"files.autoSave": "afterDelay"
}
Новый проект или отдельный файл — новое окно IDE? Eсли и вам так удобно — устанавливайте параметры:
{
"window.openFilesInNewWindow": "on",
"window.openFoldersInNewWindow": "on"
}
Любимый и привычный шрифт и размер — это точно важно. А ещё можно лигатуры включить для красоты:
{
"editor.fontFamily": "'Iosevka', 'monospace', monospace",
"editor.fontSize": 14,
"editor.fontLigatures": true
}
По умолчанию около каждого метода или класса стрелочки для раскрытия или сокрытия содержимого появляются только при наведении на них. Чтобы сделать их всегда видимыми:
{
"editor.showFoldingControls": "always"
}
Включите autofetch и вы всегда будете в курсе изменения в репозитории:
{
"git.autofetch": true,
"git.autofetchPeriod": 300 //seconds
}
кстати, в settings.json можно оставлять комментарии после //
Укажите URL сервера в параметре
{
"spring.initializr.serviceUrl": [
"https://spring-initializr.my-company.ru"
]
}
Чтобы PlantUML отрисовывался в AsciiDoc, необходимо активировать kroki и указать PlantUML сервер
{
"asciidoc.extensions.enableKroki": true,
"plantuml.server": "https://www.plantuml.com/plantuml"
}
Вы можете использовать корпоративный сервер или локальный сервер для отрисовки. Или оставить значение как в примере (тогда будете использовать публичный сервер).
Для подключения Self Hosted Gitlab:
Сгенерируйте токен для доступа к api. Для этого перейдите в настройки (Preferences) профиля в GitLab, далее в пункт Access Tokens, создайте новый токен и выберите scopes: api и read_api, скопируйте токен.
Перейдите в расширение GitLab Workflow, нажмите Add Account. Введите адрес GitLab и в следующем предложении ввода вставьте токен.
После успешного добавления связи с GitLab у вас появляются возможности:
получать списки MR, с фильтрацией
выполнять Code Review с написанием комментариев к измененным строкам, ставить Approve
видеть результат выполнения Pipelines MR.
Мне, например, удобно всегда запускать приложение с возможностью подключиться в режиме Debug. Чтобы сделать это в VSCode создайте конфигурацию запуска launch.json.
Вставьте конфиг, при необходимости измените хост и порт.
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Attach to Remote Java Application",
"request": "attach",
"hostName": "127.0.0.1",
"port": 5005
}
]
}
hostName — адрес хоста, где развернуто приложение
port — это порт для подключения удаленного дебага
Запускайте дебаг сессию после запуска приложения.
Найдите в UI настройках @ext:streetsidesoftware.code-spell-checker параметр C Spell: Language и через запятую перечислите все языки, для которых надо включить проверку орфографии.
Например, для английского и русского: en, ru.
Или в settings.json добавьте строку:
{
"cSpell.language": "en, ru"
}
Скачайте файл с правилами по оформлению кода в формате Eclipse XML, например:
wget https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml
Укажите в настройках параметр c указанием пути до файла:
{
"java.format.settings.url": "/home/shibkov/dev/eclipse-java-google-style.xml"
}
После всех действий у вас под рукой настроенная для разработки Java‑приложений IDE с использованием Spring Boot.
Дальше вы можете настраивать IDE под ваши нужды, находить полезные расширения для решения ваших задач. Так вы сможете по кирпичикам собрать свою персональную IDE и синхронизировать настройки, расширения на разные рабочие машины.
Инструкция проверена на нескольких Java‑разработчиках и помогла им полностью перейти на VSCode, не думая о рисках блокировки и ограничений урезанных версий.
Вы пробовали VSCode для разработки на Java? Расскажите в комментариях про свой опыт, про любимые и must have расширения, не указанные в статье.
Удачной разработки!
Автор: Константин Шибков
Источник [44]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/391278
Ссылки в тексте:
[1] Visual Studio Code: https://code.visualstudio.com/
[2] Какой результат хочу получить: #Results
[3] Установка и особенности работы с VSCode в разных ОС: #Install
[4] Extension Pack for Java: #Extension
[5] Проверяем работу Java в VSCode: #Checkit
[6] SonarLint: #SonarLint
[7] Spring Boot Extension Pack: #SpringBoot
[8] Как добавить корпоративный/ сторонний Spring Initializr: #corporateSpring
[9] Расширения для переноса своего JetBrains опыта: #extensions
[10] Полный список рекомендуемых расширений: #fulllist
[11] Настройки VSCode: #settingsvscode
[12] Что в итоге получилось: #Itog
[13] подробно изучить инструкции: https://code.visualstudio.com/docs/setup/linux#_installation
[14] Страница пака Extension Pack for Java: https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack
[15] https://sdkman.io: https://sdkman.io/
[16] Страница SonarLint в магазине расширений: https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarlint-vscode
[17] https://github.com/nodesource/distributions: https://github.com/nodesource/distributions
[18] Страница Spring Boot Extension Pack в магазине расширений: https://marketplace.visualstudio.com/items?itemName=vmware.vscode-boot-dev-pack
[19] Страница IntelliJ IDEA Keybindings в магазине расширений: https://marketplace.visualstudio.com/items?itemName=k--kato.intellij-idea-keybindings
[20] Страница Darcula IntelliJ Theme в магазине расширений: https://marketplace.visualstudio.com/items?itemName=trinm1709.dracula-theme-from-intellij
[21] IDEA Icons in VSCode: https://marketplace.visualstudio.com/items?itemName=lijialin.IDEA-Icons-To-Maven-For-VSCode
[22] Gradle for Java: https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-gradle
[23] Google Cloud Code (для k8s): https://marketplace.visualstudio.com/items?itemName=GoogleCloudTools.cloudcode
[24] PlantUML: https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml
[25] AsciiDoc: https://marketplace.visualstudio.com/items?itemName=asciidoctor.asciidoctor-vscode
[26] GitLab Workflow — CR/CI/MR: https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow
[27] git‑log‑graph — визуализация веток и коммитов, cherry‑pick и т. д.: https://open-vsx.org/extension/phil294/git-log--graph
[28] Docker: https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker
[29] Kubernetes: https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools
[30] Swagger Viewer: https://marketplace.visualstudio.com/items?itemName=Arjun.swagger-viewer
[31] AsyncAPI Preview: https://open-vsx.org/extension/asyncapi/asyncapi-preview
[32] XML: https://open-vsx.org/extension/redhat/vscode-xml
[33] MybatisX: https://marketplace.visualstudio.com/items?itemName=yangbaopan.vscode-java-ibatisx
[34] Auto Rename Tag: https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag
[35] Spelling Checker: https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker
[36] Russian — Code Spell Checker: https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker-russian
[37] Inline SQL: https://marketplace.visualstudio.com/items?itemName=qufiwefefwoyn.inline-sql-syntax
[38] Bookmarks: https://marketplace.visualstudio.com/items?itemName=alefragnani.Bookmarks
[39] Markdown All in One: https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one
[40] Maven dependency explorer: https://marketplace.visualstudio.com/items?itemName=dhruv.maven-dependency-explorer
[41] PostgreSQL Language Server: https://marketplace.visualstudio.com/items?itemName=uniquevision.vscode-plpgsql-lsp
[42] GitHub Copilot: https://marketplace.visualstudio.com/items?itemName=GitHub.copilot
[43] GigaCode: https://gitverse.ru/services/gigacode
[44] Источник: https://habr.com/ru/companies/cdek_blog/articles/811631/?utm_source=habrahabr&utm_medium=rss&utm_campaign=811631
Нажмите здесь для печати.