-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
11
-
x86_64
-
linux
A DESCRIPTION OF THE PROBLEM :
When using the 'java-library' plugin for Gradle, and defining the language version with 'languageVersion.set(JavaLanguageVersion.of(11))' and performing a build, it fails with the error 'Caused by: java.lang.IllegalArgumentException: error: release version 11 not supported'
REGRESSION : Last worked in version 11.0.17
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Create a basic grade project with the following build.gradle configuration included (I used Gradle 7.4):
plugins {
id 'java'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
apply plugin: 'java-library'
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
test {
useJUnitPlatform()
}
jar {
manifest {
attributes(
'Main-Class': 'org.example.Main'
)
}
}
2. Run 'gradle wrapper' in a terminal with the working directory of your project to construct a gradle wrapper
3. Define a simple Main class, e.g:
package org.example;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
4. Create a Dockerfile such as:
FROM alpine:3.16.2 as build
RUN apk add --no-cache curl openjdk11-jre bash gcompat \
&& rm -rf /var/cache/apk/*
ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk
ENV APP_DIR=/open-jdk-bug
ENV GRADLE_USER_HOME $APP_DIR/cache
RUN addgroup -S appgroup && adduser -S appuser -G appgroup \
&& mkdir $APP_DIR \
&& chown -R appuser:appgroup $APP_DIR
USER appuser
WORKDIR $APP_DIR
COPY ./gradle $APP_DIR/gradle
COPY ./gradlew ./settings.gradle $APP_DIR/
RUN ./gradlew --version
COPY ./build.gradle $APP_DIR
COPY src $APP_DIR/src
RUN ./gradlew build --refresh-dependencies --no-daemon || return 0
RUN ./gradlew build --no-daemon --stacktrace
CMD ["java, -jar, $APP_DIR/build/OpenJdkBug-1.0-SNAPSHOT.jar"]
5. Run 'docker build .'
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The docker image should build successfully
ACTUAL -
Exception is thrown caused by:
java.lang.IllegalArgumentException: error: release version 11 not supported
---------- BEGIN SOURCE ----------
See Steps to Reproduce.
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Use:
java {
sourceCompatibility = "11"
targetCompatibility = "11"
}
FREQUENCY : always
When using the 'java-library' plugin for Gradle, and defining the language version with 'languageVersion.set(JavaLanguageVersion.of(11))' and performing a build, it fails with the error 'Caused by: java.lang.IllegalArgumentException: error: release version 11 not supported'
REGRESSION : Last worked in version 11.0.17
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Create a basic grade project with the following build.gradle configuration included (I used Gradle 7.4):
plugins {
id 'java'
}
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
apply plugin: 'java-library'
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
test {
useJUnitPlatform()
}
jar {
manifest {
attributes(
'Main-Class': 'org.example.Main'
)
}
}
2. Run 'gradle wrapper' in a terminal with the working directory of your project to construct a gradle wrapper
3. Define a simple Main class, e.g:
package org.example;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
4. Create a Dockerfile such as:
FROM alpine:3.16.2 as build
RUN apk add --no-cache curl openjdk11-jre bash gcompat \
&& rm -rf /var/cache/apk/*
ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk
ENV APP_DIR=/open-jdk-bug
ENV GRADLE_USER_HOME $APP_DIR/cache
RUN addgroup -S appgroup && adduser -S appuser -G appgroup \
&& mkdir $APP_DIR \
&& chown -R appuser:appgroup $APP_DIR
USER appuser
WORKDIR $APP_DIR
COPY ./gradle $APP_DIR/gradle
COPY ./gradlew ./settings.gradle $APP_DIR/
RUN ./gradlew --version
COPY ./build.gradle $APP_DIR
COPY src $APP_DIR/src
RUN ./gradlew build --refresh-dependencies --no-daemon || return 0
RUN ./gradlew build --no-daemon --stacktrace
CMD ["java, -jar, $APP_DIR/build/OpenJdkBug-1.0-SNAPSHOT.jar"]
5. Run 'docker build .'
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The docker image should build successfully
ACTUAL -
Exception is thrown caused by:
java.lang.IllegalArgumentException: error: release version 11 not supported
---------- BEGIN SOURCE ----------
See Steps to Reproduce.
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Use:
java {
sourceCompatibility = "11"
targetCompatibility = "11"
}
FREQUENCY : always