Introduction
This guide shows you how to set up an example Java project nos Codespaces usando o aplicativo da área de trabalho do Visual Studio Code ou o cliente Web do VS Code. Será mostrado um exemplo de abertura do projeto em um codespace e da adição e da modificação de uma configuração de contêiner de desenvolvimento predefinido.
Step 1: Open the project in a codespace
-
Click Use this template, then click Open in a codespace.
When you create a codespace, your project is created on a remote virtual machine that is dedicated to you. By default, the container for your codespace has many languages and runtimes, including Java. It also includes a set of commonly used tools such as Gradle, Maven, git, wget, rsync, openssh, and nano.
Personalize seu codespace ajustando a quantidade de vCPUs e RAM, adicionando dotfiles para personalizar seu ambiente ou modificando as ferramentas e os scripts instalados.
Codespaces usa um arquivo chamado devcontainer.json
para configurar o contêiner de desenvolvimento que você usa quando trabalha em um codespace. Cada repositório pode conter um ou mais arquivos devcontainer.json
, para fornecer exatamente o ambiente de desenvolvimento necessário para trabalhar em seu código em um codespace.
Na inicialização, Codespaces usa um arquivo devcontainer.json
e todos os arquivos dependentes que compõem a configuração do contêiner de desenvolvimento, para instalar ferramentas e runtimes, além de executar outras tarefas de instalação necessárias pelo projeto. Para obter mais informações, confira "Introdução aos contêineres de desenvolvimento".
Step 2: Add a dev container configuration
The default development container, or "dev container," for GitHub Codespaces will allow you to work successfully on a Java project like vscode-remote-try-java. However, we recommend that you configure your own dev container to include all of the tools and scripts your project needs. This will ensure a fully reproducible environment for all GitHub Codespaces users in your repository.
Para configurar seu repositório e usar um contêiner de desenvolvimento personalizado, você precisará criar um ou mais arquivos devcontainer.json
. Você pode adicioná-los usando um modelo de configuração predefinido, no Visual Studio Code ou pode criar um. Para saber mais sobre contêineres de desenvolvimento, confira "Introdução aos contêineres de desenvolvimento".
-
Acesse o Visual Studio Code Command Palette (Shift+Command+P (Mac)/Ctrl+Shift+P (Windows/Linux)) e comece a digitar "dev container". Selecione Codespaces: Adicionar Arquivos de Configuração de Contêiner de Desenvolvimento… .
-
Type
java
and click the Java option. Other options are available if your project uses particular tools. For example, Java & PostgreSQL. -
Click the latest version of Java.
-
Select the option to Install Maven and click OK.
-
A list of additional features you can install is displayed. We'll install Ant, the Java library and command-line tool for building applications. To install this feature, type
ant
, selectAnt (via SDKMAN)
, then click OK. -
A message is displayed telling you that the dev container configuration file already exists. Click Overwrite.
A
devcontainer.json
file is created and is opened in the editor.
Details of your custom dev container configuration
If you look in the Visual Studio Code Explorer you'll see that a .devcontainer
directory has been added to the root of your project's repository containing the devcontainer.json
file. This is the main configuration file for codespaces created from this repository.
devcontainer.json
The devcontainer.json
file that you have added will contain values for the name
, image
, and features
properties. Some additional properties that you may find useful are included but are commented out.
The file will look similar to this, depending on which image you chose:
// 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: You can name your dev container anything you want. A default value is supplied.
- image: The name of an image in a container registry (DockerHub, GitHub Container registry, or Azure Container Registry) that will be used to create the dev container for the codespace.
- features: A list of one or more objects, each of which references one of the available dev container features. Features are self-contained, shareable units of installation code and development container configuration. They provide an easy way to add more tooling, runtime, or library features to your development container. For more information, see "Available Dev Container Features" on the Development Containers website. You can add features by going to the VS Code Command Palette and typing
features
. - forwardPorts: Any ports listed here will be forwarded automatically. For more information, see "Forwarding ports in your codespace."
- postCreateCommand: Use this property to run commands after your codespace is created.
- customizations: This property allows you to customize a specific tool or service when it is used for working in a codespace. For example, you can configure specific settings and extensions for VS Code. For more information, see "Supporting tools and services" on the Development Containers website.
- remoteUser: By default, you’re running as the vscode user, but you can optionally set this to root.
For a complete list of available properties, see the dev containers specification on the Development Containers website.
Additional dev container configuration files
If you are familiar with Docker, you may want to use a Dockerfile, or Docker Compose, to configure your codespace environment, in addition to the devcontainer.json
file. You can do this by adding your Dockerfile
or docker-compose.yml
files alongside the devcontainer.json
file. For more information, see "Using Images, Dockerfiles, and Docker Compose" on the Development Containers website.
Step 3: Modify your devcontainer.json file
With your dev container configuration added and a basic understanding of what everything does, you can now make changes to customize your environment further. In this example, you'll add properties that will:
- Run a command, after the dev container is created, to create a new file.
- Automatically install two VS Code extensions in this codespace.
-
In the
devcontainer.json
file, add a comma after thefeatures
property.JSON "features": { "ghcr.io/devcontainers/features/java:1": { "version": "none", "installMaven": "true", "installGradle": "false" }, "ghcr.io/devcontainers-contrib/features/ant-sdkman:2": {} },
-
Uncomment the
postCreateCommand
property and change its value toecho \"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",
-
Uncomment the
customizations
property and edit it as follows to install the "Code Spell Checker" extension and the "Extension Pack for 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" ] } }
The
devcontainer.json
file should now look similar to this, depending on which image you chose:// 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" }
-
Save your changes.
-
Acesse a VS Code Command Palette (Shift+Command+P [no Mac] / Ctrl+Shift+P [no Windows/Linux]) e comece a digitar "recriar". Selecione Codespaces: Recompilar Contêiner.
Dica: ocasionalmente, convém executar uma recompilação completa para limpar o cache e recompilar o contêiner com imagens novas. Para obter mais informações, confira "Executar uma recompilação completa de um contêiner".
After the dev container is rebuilt, and your codespace becomes available again, the
postCreateCommand
will have been run, creating aTEMP.md
file, and the two extensions will be available for use.
Step 4: Run your application
-
Run the application by pressing
F5
. -
If a "toast" notification message is displayed at the bottom right corner of VS Code, asking whether you want to switch to standard mode, click Yes.
-
When the project files have been imported, click the Debug Console tab to see the program output.
Step 5: Commit your changes
Depois de realizar alterações no seu código, tanto novo código como de configuração, você deverá fazer commit das suas alterações. O commit das alterações no seu repositório garante que qualquer pessoa que crie um codespace deste repositório tenha a mesma configuração. Isto também significa que qualquer personalização que você faça, como adicionar extensões do VS Code, aparecerá para todos os usuários.
Para obter informações, confira "Como usar o controle do código-fonte no seu codespace".
Next steps
You should now be able to add a custom dev container configuration to your own Java project.