You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
By default, the plugin will try to use the native-image tool that is bundled with the JDK that is used to run Gradle. This means you must make sure that you run Gradle with a GraalVM JDK.
But if I try a build with ~/.sdkman/candidates/java/21.0.1-graalce/bin/java and native-image in the same directory (~/.sdkman/candidates/java/21.0.1-graalce/bin/native-image), I get the following error:
> Task :consensusj-jsonrpc-cli:nativeCompile FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':consensusj-jsonrpc-cli:nativeCompile'.
> Cannot query the value of property 'javaLauncher' because it has no value available.
This does not happen when JAVA_HOME or GRAALVM_HOME is set.
// Instead of using 'org.graalvm.buildtools.native' directly we need to include
// the micronaut application plugin to avoid a Gradle bug:
// See: https://github.com/micronaut-projects/micronaut-gradle-plugin/issues/706
// and: https://github.com/gradle/gradle/issues/17559
//id 'org.graalvm.buildtools.native' version '0.9.28'
id("io.micronaut.application") version "${micronautAppGradlePluginVersion}"
gradle.properties contains:
micronautAppGradlePluginVersion = 4.2.0
Expected behavior
The nativeCompile task to complete successfully, as it does when JAVA_HOME or GRAALVM_HOME is set.
Logs
See above. I'm happy to provide more info if necessary.
System Info:
OS: macOS 13.6.2
GraalVM Version: 21.0.1-graalce (installed with SDKMAN)
Java Version: 21
Plugin version: Should be 0.9.28 (but is installed via io.micronaut.application, see above)
Additional context
I actually discovered the bug while trying to create a build that will run in a Nix shell environment.
I don't think either of these issues (or my workaround for them) is relevant:
graalvmNative {
binaries {
all {
// native-build-tools reads this to find native-image unless either JAVA_HOME or GRAALVM_HOME are set:// https://github.com/graalvm/native-build-tools/blob/0.9.28/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/BuildNativeImageTask.java#L211// https://github.com/graalvm/native-build-tools/blob/0.9.28/native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/internal/NativeImageExecutableLocator.java#L89// https://github.com/graalvm/native-build-tools/issues/542
javaLauncher.set(javaToolchains.launcherFor {
// Compile with native-image from GraalVM for JDK21
languageVersion.set(JavaLanguageVersion.of(21))
vendor.set(JvmVendorSpec.GRAAL_VM)
})
Describe the bug
Gradle plugin nativeCompile fails when
JAVA_HOME
andGRAALVM_HOME
are not set.The documentation says:
But if I try a build with
~/.sdkman/candidates/java/21.0.1-graalce/bin/java
andnative-image
in the same directory (~/.sdkman/candidates/java/21.0.1-graalce/bin/native-image
), I get the following error:This does not happen when
JAVA_HOME
orGRAALVM_HOME
is set.To Reproduce
I used the following commands to reproduce:
excerpt from my subproject
build.gradle
:gradle.properties contains:
Expected behavior
The
nativeCompile
task to complete successfully, as it does whenJAVA_HOME
orGRAALVM_HOME
is set.Logs
See above. I'm happy to provide more info if necessary.
System Info:
io.micronaut.application
, see above)Additional context
I actually discovered the bug while trying to create a build that will run in a Nix shell environment.
I don't think either of these issues (or my workaround for them) is relevant:
But I thought I should link them for completeness.
The text was updated successfully, but these errors were encountered: