Skip to main content

Настройка проекта Java для GitHub Codespaces

Начните работу с проектом Java в GitHub Codespaces, создав настраиваемую конфигурацию контейнера разработки.

Введение

В этом руководстве показано, как настроить пример проекта Java в GitHub Codespaces с помощью веб-клиента Visual Studio Code. Он поможет вам открыть проект в codespace, а также добавить и изменить предопределенную конфигурацию контейнера разработки.

По завершении работы с этим руководством вы сможете добавить конфигурацию контейнера разработки в собственный репозиторий с помощью веб-клиента VS Code или классического приложения VS Code.

Дополнительные сведения о контейнерах разработки см. в разделе Общие сведения о контейнерах разработки.

Шаг 1. Открытие проекта в codespace

  1. Перейдите к https://github.com/microsoft/vscode-remote-try-java.

  2. Щелкните Использовать этот шаблон, а затем щелкните Открыть в codespace.

    Снимок экрана: кнопка "Использовать этот шаблон" и раскрывающееся меню

При создании codespace проект создается на выделенной для вас удаленной виртуальной машине. По умолчанию контейнер для codespace имеет множество языков и сред выполнения, включая Java. Он также включает набор часто используемых средств, таких как Gradle, Maven, git, wget, rsync, openssh и nano.

Вы можете настроить свое codespace, настроив количество виртуальных ЦП и ОЗУ, добавив файлы с точкой для персонализации вашей среды или изменив установленные инструменты и скрипты. Дополнительные сведения см. в разделе Настройка codespace.

GitHub Codespaces использует файл с именем devcontainer.json для настройки контейнера разработки, который используется при работе в codespace. Каждый репозиторий может содержать один или несколько файлов devcontainer.json, чтобы предоставить вам именно среду разработки, необходимую для работы с вашим кодом в codespace.

При запуске GitHub Codespaces использует devcontainer.json файл и все зависимые файлы, составляющие конфигурацию контейнера разработки, для установки средств и сред выполнения, а также для выполнения других задач установки, необходимых проекту. Дополнительные сведения см. в статье Общие сведения о контейнерах разработки.

Шаг 2. Добавление конфигурации контейнера разработки

Контейнер разработки по умолчанию или "контейнер разработки" для GitHub Codespaces позволяет успешно работать с проектом Java, например vscode-remote-try-java. Однако рекомендуется настроить собственный контейнер разработки, чтобы включить все средства и скрипты, необходимые вашему проекту. Это обеспечит полностью воспроизводимую среду для всех пользователей GitHub Codespaces в репозитории.

Чтобы настроить репозиторий для использования пользовательского контейнера разработки, нужно создать один или несколько файлов devcontainer.json. Их можно добавить из предопределенного шаблона конфигурации в Visual Studio Code или написать собственный. Дополнительные сведения о конфигурациях контейнеров разработки см. в разделе Общие сведения о контейнерах разработки. 1. Получите доступ к Visual Studio Code Command Palette (команда+ SHIFT+P / , CTRL+SHIFT SHIFT+P), а затем начните вводить "контейнер разработки". Щелкните Codespaces: Configure Dev Container (Кодовые пространства: настройка контейнера разработки).

Снимок экрана: параметр "Codespaces: настройка контейнера разработки"

  1. Нажмите кнопку Начать с нуля.

    Снимок экрана: параметр "Начать с нуля"

  2. В этом примере репозиторий шаблонов, из которого вы создали codespace, уже содержит конфигурацию контейнера разработки, поэтому отображается сообщение о том, что файл конфигурации уже существует. Мы перезаписаем существующий файл конфигурации, поэтому нажмите кнопку Продолжить.

  3. Щелкните Показать все определения.

    Снимок экрана: параметр "Показать все определения"

  4. Введите java и щелкните параметр Java . Другие параметры доступны, если в проекте используются определенные средства. Например, Java & PostgreSQL.

    Снимок экрана: параметр Java

  5. Выберите версию Java, которую вы хотите использовать для проекта. В этом случае выберите версию с пометкой "(по умолчанию)".

    Снимок экрана: выбор версии Java

  6. Выберите параметр Установить Maven и нажмите кнопку ОК.

    Снимок экрана: параметр Maven

  7. Отобразится список дополнительных компонентов, которые можно установить. Мы установим Ant, библиотеку Java и программу командной строки для создания приложений. Чтобы установить эту функцию, введите ant, выберите Ant (via SDKMAN), а затем нажмите кнопку ОК.

    Снимок экрана: дополнительные функции для "муравей"

  8. Появится сообщение о том, что файл конфигурации контейнера разработки уже существует. Щелкните Перезаписать.

    Файл devcontainer.json создается и открывается в редакторе. ### Сведения о конфигурации настраиваемого контейнера разработки

При просмотре в обозревателе Visual Studio Code вы увидите, что .devcontainer каталог добавлен в корень репозитория проекта, содержащего devcontainer.json файл. Это основной файл конфигурации для codespace, созданных из этого репозитория.

devcontainer.json

Добавленный devcontainer.json файл будет содержать значения свойств name, imageи features . Некоторые дополнительные свойства, которые могут оказаться полезными, включены, но закомментированы.

Файл будет выглядеть примерно так, в зависимости от выбранного образа:

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/java
{
  "name": "Java",
  // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
  "image": "mcr.microsoft.com/devcontainers/java:0-17",

  "features": {
    "ghcr.io/devcontainers/features/java:1": {
      "version": "none",
      "installMaven": "true",
      "installGradle": "false"
    },
    "ghcr.io/devcontainers-contrib/features/ant-sdkman:2": {}
  }

  // Use 'forwardPorts' to make a list of ports inside the container available locally.
  // "forwardPorts": [],

  // Use 'postCreateCommand' to run commands after the container is created.
  // "postCreateCommand": "java -version",

  // Configure tool-specific properties.
  // "customizations": {},

  // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
  // "remoteUser": "root"
}

  • name. Вы можете присвоить контейнеру разработки любое имя. Предоставляется значение по умолчанию.
  • image: имя образа в реестре контейнеров (DockerHub, GitHub Container registry или Реестр контейнеров Azure), которое будет использоваться для создания контейнера разработки для codespace.
  • features: список из одного или нескольких объектов, каждый из которых ссылается на одну из доступных функций контейнера разработки. Компоненты — это автономные, доступные для совместного использования единицы кода установки и конфигурации контейнера разработки. Они предоставляют простой способ добавления дополнительных инструментов, функций среды выполнения или библиотеки в контейнер разработки. Дополнительные сведения см. в разделе Доступные функции контейнера разработки на веб-сайте "Контейнеры разработки". Вы можете добавить компоненты, перейдя в VS Code Command Palette и введя features.
  • forwardPorts: все перечисленные здесь порты будут пересылаться автоматически. Дополнительные сведения см. в разделе Переадресация портов в кодовом пространстве. - postCreateCommand: используйте это свойство для выполнения команд после создания codespace.
  • настройки. Это свойство позволяет настраивать определенное средство или службу, если они используются для работы в codespace. Например, можно настроить определенные параметры и расширения для VS Code. Дополнительные сведения см. в разделе Вспомогательные средства и службы на веб-сайте контейнеров разработки.
  • remoteUser: по умолчанию вы работаете от имени пользователя vscode, но при необходимости можете задать для этого параметра значение root.

Полный список доступных свойств см. в спецификации контейнеров разработки на веб-сайте "Контейнеры разработки".

Дополнительные файлы конфигурации контейнера разработки

Если вы знакомы с Docker, вам может потребоваться использовать Dockerfile или Docker Compose для настройки среды codespace в дополнение к файлу devcontainer.json . Это можно сделать, добавив Dockerfile файлы или docker-compose.yml вместе с файлом devcontainer.json . Дополнительные сведения см. в разделе Использование образов, Dockerfiles и Docker Compose на веб-сайте Контейнеров разработки.

Шаг 3. Изменение файла devcontainer.json

После добавления конфигурации контейнера разработки и получения базового представления о том, как все устроено, теперь можно внести изменения для дальнейшей настройки среды. В этом примере вы добавите свойства, которые:

  • Выполните команду после создания контейнера разработки, чтобы создать новый файл.
  • Автоматическая установка двух расширений VS Code в этом codespace.
  1. devcontainer.json В файле добавьте запятую после features свойства .

    JSON
    "features": {
      "ghcr.io/devcontainers/features/java:1": {
        "version": "none",
        "installMaven": "true",
        "installGradle": "false"
      },
      "ghcr.io/devcontainers-contrib/features/ant-sdkman:2": {}
    },
  2. Раскомментируйте свойство и измените postCreateCommand его значение на echo \"This file was added by the postCreateCommand.\" > TEMP.md.

    JSON
    // Use 'postCreateCommand' to run commands after the container is created.
    "postCreateCommand": "echo \"This file was added by the postCreateCommand.\" > TEMP.md",
  3. Раскомментируйте свойство и измените customizations его следующим образом, чтобы установить расширение "Средство проверки орфографии кода" и "Пакет расширений для Java".

    JSON
    // Configure tool-specific properties.
    "customizations": {
      // Configure properties specific to VS Code.
      "vscode": {
        // Add the IDs of extensions you want installed when the container is created.
        "extensions": [
          "streetsidesoftware.code-spell-checker",
          "vscjava.vscode-java-pack"
        ]
      }
    }

    Теперь devcontainer.json файл должен выглядеть примерно так, в зависимости от выбранного образа:

    // For format details, see https://aka.ms/devcontainer.json. For config options, see the
    // README at: https://github.com/devcontainers/templates/tree/main/src/java
    {
      "name": "Java",
      // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
      "image": "mcr.microsoft.com/devcontainers/java:0-17",
    
      "features": {
        "ghcr.io/devcontainers/features/java:1": {
          "version": "none",
          "installMaven": "true",
          "installGradle": "false"
        },
        "ghcr.io/devcontainers-contrib/features/ant-sdkman:2": {}
      },
    
      // Use 'forwardPorts' to make a list of ports inside the container available locally.
      // "forwardPorts": [],
    
      // Use 'postCreateCommand' to run commands after the container is created.
      "postCreateCommand": "echo \"This file was added by the postCreateCommand.\" > TEMP.md",
    
      // Configure tool-specific properties.
      "customizations": {
        // Configure properties specific to VS Code.
        "vscode": {
          // Add the IDs of extensions you want installed when the container is created.
          "extensions": [
            "streetsidesoftware.code-spell-checker",
            "vscjava.vscode-java-pack"
          ]
        }
      }
    
      // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
      // "remoteUser": "root"
    }
    
  4. Сохраните изменения. 1. Получите доступ к VS Code Command Palette (команда+ SHIFT+P / , CTRL+SHIFT P+), а затем начните вводить "rebuild". Щелкните Codespaces: Перестроение контейнера.

    Снимок экрана: команда "Перестроить контейнер" в палитре команд

    Совет: Иногда может потребоваться выполнить полную перестройку, чтобы очистить кэш и перестроить контейнер со свежими образами. Дополнительные сведения см. в разделе Выполнение полного перестроения контейнера.

    Прежде чем вы зафиксируете изменения в репозитории, выполните повторную сборку внутри codespace, чтобы гарантировать правильное внесение изменений. Если что-то приведет к сбою, вы будете помещены в codespace с контейнером восстановления, который можно собрать повторно, чтобы сохранить настройку контейнера.

    После того как контейнер разработки будет перестроен, а пространство codespace снова станет доступным, postCreateCommand будет запущен, создав TEMP.md файл, и два расширения будут доступны для использования.

Шаг 4. Запуск приложения

  1. Запустите приложение, нажав клавишу F5.

  2. Если в правом нижнем углу VS Code отображается всплывающее сообщение с запросом на переход в стандартный режим, нажмите кнопку Да.

    Снимок экрана: запрос "стандартный режим"

  3. После импорта файлов проекта перейдите на вкладку Консоль отладки , чтобы просмотреть выходные данные программы.

    Снимок экрана: выходные данные программы в консоли отладки

Шаг 5. Фиксация изменений

После внесения изменений в codespace (новый код или изменения конфигурации) вы захотите зафиксировать изменения. Фиксация изменений конфигурации в репозитории гарантирует, что любой другой пользователь, создающий codespace из этого репозитория, имеет такую же конфигурацию. Любые настройки, такие как добавление расширений VS Code, будут доступны всем пользователям.

В этом руководстве вы создали codespace из репозитория шаблонов, поэтому код в codespace еще не хранится в репозитории. Вы можете создать репозиторий, опубликовав текущую ветвь в GitHub.com.

Дополнительные сведения см. в разделе Использование системы управления версиями в codespace.

Дальнейшие действия

Теперь вы сможете добавить настраиваемую конфигурацию контейнера разработки в собственный проект Java.

Ниже приведены дополнительные ресурсы для более сложных сценариев.