sha256:f85e207c2c20570cfb881b90e31ea0160af834f2d63587b88cdc2999215fe55d
Last pushed
about 23 hours by jfeeneydemo3
Type
Sandbox Kit
Manifest digest
sha256:f85e207c2c20570cfb881b90e31ea0160af834f2d63587b88cdc2999215fe55d
schemaVersion: "2"
kind: mixin
name: java-maven-junit
version: 1.1.2
displayName: Java, Maven, and JUnit toolchain
description: Pinned current Java, Maven, Gradle, and JUnit tooling for JVM demos.
sourceURL: https://gitlab.com/dubjug/sandbox-mixin-kits
licenses:
- Apache-2.0
args:
gradle-version:
default: 9.8.1
pattern: ^[0-9]+\.[0-9]+(?:\.[0-9]+)?$
java-version:
default: 26.0.2.1+1
pattern: ^[0-9]+(?:\.[0-9]+){1,3}\+[0-9]+$
junit-version:
default: 6.1.3
pattern: ^[0-9]+\.[0-9]+\.[0-9]+$
maven-version:
default: 3.10.0
pattern: ^[0-9]+\.[0-9]+\.[0-9]+$
agentInstructions:
content: |
Java, Maven, Gradle, and the JUnit Platform Console are installed.
Always use Maven to build and run applications, even though Gradle is
installed. The demo depends on a specific Maven plugin that has no Gradle
equivalent. Use the project's Maven wrapper (`./mvnw`) when present;
otherwise use `mvn`. Do not build with Gradle, even when a `build.gradle`
or `gradlew` is present.
Keep JUnit dependencies declared in the project POM rather than relying on
the standalone console jar.
permissions:
network:
allow:
- api.adoptium.net:443
- archive.apache.org:443
- repo.maven.apache.org:443
- repo1.maven.org:443
- nexus.acme.internal:443
- plugins.gradle.org:443
- gitlab.com:443
- gitlab.com:22
- downloads.gradle.org:443
- github.com:443
- objects.githubusercontent.com:443
- release-assets.githubusercontent.com:443
- central.sonatype.com:443
- repository.apache.org:443
- repository.ow2.org:443
- oss.sonatype.org:443
setup:
install:
- command: |-
set -eu; JAVA_VERSION='${{ kit.args.java-version }}'; MAVEN_VERSION='${{ kit.args.maven-version }}'; GRADLE_VERSION='${{ kit.args.gradle-version }}'; JUNIT_VERSION='${{ kit.args.junit-version }}'; case "$(uname -m)" in
x86_64) ADOPTIUM_ARCH=x64 ;;
aarch64|arm64) ADOPTIUM_ARCH=aarch64 ;;
*) echo "Unsupported architecture: $(uname -m)" >&2; exit 1 ;;
esac; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ca-certificates curl tar unzip; rm -rf /opt/java/temurin-current /opt/maven/apache-maven-current /opt/gradle/gradle-current /opt/junit; mkdir -p /opt/java/temurin-current /opt/maven/apache-maven-current /opt/gradle/gradle-current /opt/junit; curl -fsSL "https://api.adoptium.net/v3/binary/version/jdk-${JAVA_VERSION}/linux/${ADOPTIUM_ARCH}/jdk/hotspot/normal/eclipse" -o /tmp/temurin.tar.gz; tar -xzf /tmp/temurin.tar.gz -C /opt/java/temurin-current --strip-components=1; test -f /etc/ssl/certs/java/cacerts; rm -f /opt/java/temurin-current/lib/security/cacerts; ln -s /etc/ssl/certs/java/cacerts /opt/java/temurin-current/lib/security/cacerts; curl -fsSLO "https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz"; curl -fsSLO "https://archive.apache.org/dist/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz.sha512"; echo "$(awk '{print $1}' apache-maven-${MAVEN_VERSION}-bin.tar.gz.sha512) apache-maven-${MAVEN_VERSION}-bin.tar.gz" | sha512sum -c -; tar -xzf "apache-maven-${MAVEN_VERSION}-bin.tar.gz" -C /opt/maven/apache-maven-current --strip-components=1; curl -fsSLO "https://downloads.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip"; curl -fsSLO "https://downloads.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip.sha256"; echo "$(awk '{print $1}' gradle-${GRADLE_VERSION}-bin.zip.sha256) gradle-${GRADLE_VERSION}-bin.zip" | sha256sum -c -; unzip -q "gradle-${GRADLE_VERSION}-bin.zip" -d /tmp/gradle-extract; cp -a /tmp/gradle-extract/gradle-*/. /opt/gradle/gradle-current/; JUNIT_URL="https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-console-standalone/${JUNIT_VERSION}/junit-platform-console-standalone-${JUNIT_VERSION}.jar"; curl -fsSL "${JUNIT_URL}" -o /opt/junit/junit-platform-console-standalone.jar; curl -fsSL "${JUNIT_URL}.sha256" -o /tmp/junit.sha256; echo "$(awk '{print $1}' /tmp/junit.sha256) /opt/junit/junit-platform-console-standalone.jar" | sha256sum -c -; for TOOL_PATH in /opt/java/temurin-current/bin/*; do
TOOL="$(basename "${TOOL_PATH}")";
update-alternatives --install "/usr/bin/${TOOL}" "${TOOL}" "${TOOL_PATH}" 2600;
done; ln -sfn /opt/maven/apache-maven-current/bin/mvn /usr/local/bin/mvn; ln -sfn /opt/maven/apache-maven-current/bin/mvnDebug /usr/local/bin/mvnDebug; ln -sfn /opt/gradle/gradle-current/bin/gradle /usr/local/bin/gradle; printf '%s\n' '#!/bin/sh' 'exec java -jar /opt/junit/junit-platform-console-standalone.jar "$@"' > /usr/local/bin/junit; chmod 0755 /usr/local/bin/junit; printf '%s\n' 'export JAVA_HOME=/opt/java/temurin-current' 'export MAVEN_HOME=/opt/maven/apache-maven-current' 'export GRADLE_HOME=/opt/gradle/gradle-current' >> /etc/sandbox-persistent.sh; rm -rf /var/lib/apt/lists/* /tmp/gradle-extract; rm -f /tmp/temurin.tar.gz /tmp/junit.sha256 "apache-maven-${MAVEN_VERSION}-bin.tar.gz" "apache-maven-${MAVEN_VERSION}-bin.tar.gz.sha512" "gradle-${GRADLE_VERSION}-bin.zip" "gradle-${GRADLE_VERSION}-bin.zip.sha256"; java --version; mvn --version; gradle --version; junit --version
user: "0"
description: Install the pinned Temurin JDK, Maven, Gradle, and JUnit Console