aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Gesellchen <tobias@gesellix.de>2023-01-19 00:24:10 +0300
committerGitHub <noreply@github.com>2023-01-19 00:24:10 +0300
commitd78a1534925e7e424355d214c683e946cbb97d05 (patch)
treec0de2f137a1d25b468093f488245ffd5bffd84dd
parentf7314671e1654cd47263a09b134ddd0286f9eccc (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.json19
-rw-r--r--src/java/install.sh7
-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.json10
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",