IMPORTANT NOTE: We're starting to migrate contents of this repo to the devcontainers org, as part of the work on the open dev container specification.
We've currently migrated maven
as part of the java
Feature.
For more details, you can review the announcement issue.
Installs Maven, SDKMAN! (if not installed), and needed dependencies.
Script status: Stable
OS support: Debian 9+, Ubuntu 18.04+, and downstream distros.
Maintainer: The VS Code and GitHub Codespaces teams
./maven-debian.sh [Maven version] [SDKMAN_DIR] [Non-root user] [Add rc files flag]
Or as a feature:
"features": {
"maven": "latest"
}
Argument | Feature option | Default | Description |
---|---|---|---|
Maven version | version |
latest |
Version of Maven to install. Specify latest to install the latest stable version. |
SDKMAN_DIR | /usr/local/sdkman |
Location to find SDKMAN!, or if not found, where to install it. | |
Non-root user | automatic |
Specifies a user in the container other than root that will use Gradle. A value of automatic will cause the script to check for a user called vscode , then node , codespace , and finally a user with a UID of 1000 before falling back to root . |
|
Add to rc files flag | true |
A true /false flag that indicates whether sourcing the nvm script should be added to /etc/bash.bashrc and /etc/zsh/zshrc . |
To install these capabilities in your primary dev container, reference it in devcontainer.json
as follows:
"features": {
"maven": "latest"
}
If you have already built your development container, run the Rebuild Container command from the command palette (Ctrl/Cmd + Shift + P or F1) to pick up the change.
-
Add
maven-debian.sh
to.devcontainer/library-scripts
-
Add the following to your
.devcontainer/Dockerfile
:ENV SDKMAN_DIR="/usr/local/sdkman" ENV PATH=${SDKMAN_DIR}/bin:${SDKMAN_DIR}/candidates/maven/current/bin:${PATH} COPY library-scripts/maven-debian.sh /tmp/library-scripts/ RUN apt-get update && bash /tmp/library-scripts/maven-debian.sh "latest" "${SDKMAN_DIR}"
That's it!