diff options
author | Tobias Gesellchen <tobias@gesellix.de> | 2023-01-19 00:24:10 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-19 00:24:10 +0300 |
commit | d78a1534925e7e424355d214c683e946cbb97d05 (patch) | |
tree | c0de2f137a1d25b468093f488245ffd5bffd84dd | |
parent | f7314671e1654cd47263a09b134ddd0286f9eccc (diff) |
Java: add Apache Ant (#409)
* Java: add Apache Ant
* Update src/java/devcontainer-feature.json
Co-authored-by: Samruddhi Khandale <skhandale@microsoft.com>
* revert the changes in README.md
* Add tests for Java/Ant
* Fix Java feature version
Co-authored-by: Samruddhi Khandale <skhandale@microsoft.com>
-rw-r--r-- | src/java/devcontainer-feature.json | 19 | ||||
-rw-r--r-- | src/java/install.sh | 7 | ||||
-rw-r--r-- | test/java/install_ant_and_gradle_and_maven.sh (renamed from test/java/install_gradle_and_maven.sh) | 9 | ||||
-rw-r--r-- | test/java/install_ant_and_gradle_and_maven_for_user.sh (renamed from test/java/install_gradle_and_maven_for_user.sh) | 9 | ||||
-rw-r--r-- | test/java/install_ant_and_gradle_and_maven_with_specific_version.sh (renamed from test/java/install_gradle_and_maven_with_specific_version.sh) | 9 | ||||
-rw-r--r-- | test/java/scenarios.json | 10 |
6 files changed, 55 insertions, 8 deletions
diff --git a/src/java/devcontainer-feature.json b/src/java/devcontainer-feature.json index 113c75d..f55276a 100644 --- a/src/java/devcontainer-feature.json +++ b/src/java/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "java", - "version": "1.1.1", + "version": "1.2.0", "name": "Java (via SDKMAN!)", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/java", "description": "Installs Java, SDKMAN! (if not installed), and needed dependencies.", @@ -59,6 +59,21 @@ ], "default": "latest", "description": "Select or enter a Maven version" + }, + "installAnt": { + "type": "boolean", + "default": false, + "description": "Install Ant, a software tool for automating software build processes" + }, + "antVersion": { + "type": "string", + "proposals": [ + "latest", + "1.10.12", + "1.9.15" + ], + "default": "latest", + "description": "Select or enter an Ant version" } }, "customizations": { @@ -74,7 +89,7 @@ "containerEnv": { "SDKMAN_DIR": "/usr/local/sdkman", "JAVA_HOME": "/usr/local/sdkman/candidates/java/current", - "PATH": "/usr/local/sdkman/bin:/usr/local/sdkman/candidates/java/current/bin:/usr/local/sdkman/candidates/gradle/current/bin:/usr/local/sdkman/candidates/maven/current/bin:${PATH}" + "PATH": "/usr/local/sdkman/bin:/usr/local/sdkman/candidates/java/current/bin:/usr/local/sdkman/candidates/gradle/current/bin:/usr/local/sdkman/candidates/maven/current/bin:/usr/local/sdkman/candidates/ant/current/bin:${PATH}" }, "installsAfter": [ "ghcr.io/devcontainers/features/common-utils" diff --git a/src/java/install.sh b/src/java/install.sh index bf94963..ea43dd3 100644 --- a/src/java/install.sh +++ b/src/java/install.sh @@ -14,6 +14,8 @@ INSTALL_GRADLE="${INSTALLGRADLE:-"false"}" GRADLE_VERSION="${GRADLEVERSION:-"latest"}" INSTALL_MAVEN="${INSTALLMAVEN:-"false"}" MAVEN_VERSION="${MAVENVERSION:-"latest"}" +INSTALL_ANT="${INSTALLANT:-"false"}" +ANT_VERSION="${ANTVERSION:-"latest"}" JDK_DISTRO="${JDKDISTRO}" export SDKMAN_DIR="${SDKMAN_DIR:-"/usr/local/sdkman"}" @@ -173,6 +175,11 @@ if [ ! -z "${ADDITIONAL_VERSIONS}" ]; then su ${USERNAME} -c ". ${SDKMAN_DIR}/bin/sdkman-init.sh && sdk default java ${JAVA_VERSION}" fi +# Install Ant +if [[ "${INSTALL_ANT}" = "true" ]] && ! ant -version > /dev/null; then + sdk_install ant ${ANT_VERSION} +fi + # Install Gradle if [[ "${INSTALL_GRADLE}" = "true" ]] && ! gradle --version > /dev/null; then sdk_install gradle ${GRADLE_VERSION} diff --git a/test/java/install_gradle_and_maven.sh b/test/java/install_ant_and_gradle_and_maven.sh index 636fd92..599f8d9 100644 --- a/test/java/install_gradle_and_maven.sh +++ b/test/java/install_ant_and_gradle_and_maven.sh @@ -8,8 +8,15 @@ source dev-container-features-test-lib check "user is root" grep root <(whoami) check "java" java --version -check "gradle" gradle --version +check "ant" ant -version +cat << EOF > /tmp/build.xml +<project><target name="init"><mkdir dir="ant-src"/></target></project> +EOF +cd /tmp && ant init +check "ant-src exists" grep "ant-src" <(ls -la /tmp) + +check "gradle" gradle --version cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /root) diff --git a/test/java/install_gradle_and_maven_for_user.sh b/test/java/install_ant_and_gradle_and_maven_for_user.sh index b6ea426..4e8b431 100644 --- a/test/java/install_gradle_and_maven_for_user.sh +++ b/test/java/install_ant_and_gradle_and_maven_for_user.sh @@ -8,8 +8,15 @@ source dev-container-features-test-lib check "user is vscode" grep vscode <(whoami) check "java" java --version -check "gradle" gradle --version +check "ant" ant -version +cat << EOF > /tmp/build.xml +<project><target name="init"><mkdir dir="ant-src"/></target></project> +EOF +cd /tmp && ant init +check "ant-src exists" grep "ant-src" <(ls -la /tmp) + +check "gradle" gradle --version cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /home/vscode) diff --git a/test/java/install_gradle_and_maven_with_specific_version.sh b/test/java/install_ant_and_gradle_and_maven_with_specific_version.sh index c6ae6160..7727f51 100644 --- a/test/java/install_gradle_and_maven_with_specific_version.sh +++ b/test/java/install_ant_and_gradle_and_maven_with_specific_version.sh @@ -8,8 +8,15 @@ source dev-container-features-test-lib check "user is root" grep root <(whoami) check "java" java --version -check "gradle version" grep "Gradle 6.8.3" <(gradle --version) +check "ant version" grep "Ant(TM) version 1.10.12" <(ant -version) +cat << EOF > /tmp/build.xml +<project><target name="init"><mkdir dir="ant-src"/></target></project> +EOF +cd /tmp && ant init +check "ant-src exists" grep "ant-src" <(ls -la /tmp) + +check "gradle version" grep "Gradle 6.8.3" <(gradle --version) cd /tmp && gradle init --type basic --dsl groovy --project-name test check "GRADLE_USER_HOME exists" grep ".gradle" <(ls -la /root) diff --git a/test/java/scenarios.json b/test/java/scenarios.json index 479ee47..11fb7ba 100644 --- a/test/java/scenarios.json +++ b/test/java/scenarios.json @@ -17,7 +17,7 @@ } } }, - "install_gradle_and_maven_for_user": { + "install_ant_and_gradle_and_maven_for_user": { "image": "ubuntu:focal", "remoteUser": "vscode", "features": { @@ -26,26 +26,30 @@ }, "java": { "version": "latest", + "installAnt": true, "installGradle": true, "installMaven": true } } }, - "install_gradle_and_maven": { + "install_ant_and_gradle_and_maven": { "image": "ubuntu:focal", "features": { "java": { "version": "latest", + "installAnt": true, "installGradle": true, "installMaven": true } } }, - "install_gradle_and_maven_with_specific_version": { + "install_ant_and_gradle_and_maven_with_specific_version": { "image": "ubuntu:focal", "features": { "java": { "version": "latest", + "installAnt": "true", + "antVersion": "1.10.12", "installGradle": "true", "gradleVersion": "6.8.3", "installMaven": "true", |