Skip to content

Commit d89ef37

Browse files
committed
Add Gradle and Maven version parameters to Java
1 parent 73a9c7d commit d89ef37

5 files changed

Lines changed: 62 additions & 3 deletions

File tree

src/java/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ Installs Java, SDKMAN! (if not installed), and needed dependencies.
2020
| version | Select or enter a Java version to install | string | latest |
2121
| jdkDistro | Select or enter a JDK distribution | string | ms |
2222
| installGradle | Install Gradle, a build automation tool for multi-language software development | boolean | false |
23+
| gradleVersion | Select or enter a Gradle version | string | latest |
2324
| installMaven | Install Maven, a management tool for Java | boolean | false |
25+
| mavenVersion | Select or enter a Maven version | string | latest |
2426

2527
## License
2628

src/java/devcontainer-feature.json

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"id": "java",
3-
"version": "1.0.11",
3+
"version": "1.1.0",
44
"name": "Java (via SDKMAN!)",
55
"documentationURL": "https://github.com/devcontainers/features/tree/main/src/java",
66
"description": "Installs Java, SDKMAN! (if not installed), and needed dependencies.",
@@ -33,10 +33,32 @@
3333
"default": false,
3434
"description": "Install Gradle, a build automation tool for multi-language software development"
3535
},
36+
"gradleVersion": {
37+
"type": "string",
38+
"proposals": [
39+
"latest",
40+
"7.5.1",
41+
"6.9.3",
42+
"5.6.4"
43+
],
44+
"default": "latest",
45+
"description": "Select or enter a Gradle version"
46+
},
3647
"installMaven": {
3748
"type": "boolean",
3849
"default": false,
3950
"description": "Install Maven, a management tool for Java"
51+
},
52+
"mavenVersion": {
53+
"type": "string",
54+
"proposals": [
55+
"latest",
56+
"3.8.6",
57+
"3.6.3",
58+
"3.5.4"
59+
],
60+
"default": "latest",
61+
"description": "Select or enter a Maven version"
4062
}
4163
},
4264
"buildArg": "_VSC_INSTALL_JAVA",

src/java/install.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111

1212
JAVA_VERSION=${VERSION:-"lts"}
1313
INSTALL_GRADLE=${INSTALLGRADLE:-"false"}
14+
GRADLE_VERSION=${GRADLEVERSION:-"latest"}
1415
INSTALL_MAVEN=${INSTALLMAVEN:-"false"}
16+
MAVEN_VERSION=${MAVENVERSION:-"latest"}
1517
JDK_DISTRO=${JDKDISTRO}
1618

1719
export SDKMAN_DIR=${SDKMAN_DIR:-"/usr/local/sdkman"}
@@ -173,12 +175,12 @@ fi
173175

174176
# Install Gradle
175177
if [[ "${INSTALL_GRADLE}" = "true" ]] && ! gradle --version > /dev/null; then
176-
sdk_install gradle latest
178+
sdk_install gradle ${GRADLE_VERSION}
177179
fi
178180

179181
# Install Maven
180182
if [[ "${INSTALL_MAVEN}" = "true" ]] && ! mvn --version > /dev/null; then
181-
sdk_install maven latest
183+
sdk_install maven ${MAVEN_VERSION}
182184
fi
183185

184186
# Clean up
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
# Optional: Import test library
6+
source dev-container-features-test-lib
7+
8+
check "user is root" whoami | grep root
9+
10+
check "java" java --version
11+
check "gradle version" gradle --version | grep "Gradle 6.8.3"
12+
13+
cd /tmp && gradle init --type basic --dsl groovy --incubating --project-name test
14+
check "GRADLE_USER_HOME exists" ls -la /root | grep ".gradle"
15+
16+
check "maven version" mvn --version | grep "Apache Maven 3.6.3"
17+
cd /tmp && mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
18+
check "m2 exists" ls -la /root | grep ".m2"
19+
20+
# Report result
21+
reportResults

test/java/scenarios.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,17 @@
4040
"installMaven": true
4141
}
4242
}
43+
},
44+
"install_gradle_and_maven_with_specific_version": {
45+
"image": "ubuntu:focal",
46+
"features": {
47+
"java": {
48+
"version": "latest",
49+
"installGradle": "true",
50+
"gradleVersion": "6.8.3",
51+
"installMaven": "true",
52+
"mavenVersion": "3.6.3"
53+
}
54+
}
4355
}
4456
}

0 commit comments

Comments
 (0)