Gradle - 获取已解析的java工具链的安装目录

问题描述 投票:0回答:1

我有一个应用以下配置的 gradle 项目:

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
        vendor = JvmVendorSpec.AMAZON
    }
}

在同一个项目中,我有一个任务负责编译一些 C++ 代码,并且该 C++ 代码依赖于一些 JDK 头文件和库。我想获取已解析工具链的安装目录(JAVA_HOME),以便我可以将其提供给 C++ 编译器,确保使用相同的 JDK 来编译 java 组件和本机组件。

有什么办法可以做到这一点吗?我查看了 JavaToolchainSpec ,但似乎该规范并未被评估为 JavaCompiler ,直到它实际在 java 插件定义的特定任务中使用。不幸的是,需要它的本机编译任务只是一个标准的

exec
任务。

我使用的是 gradle 8.2 版本

java gradle toolchain
1个回答
0
投票

在文档中,您可以找到如何在任务中获取JAVA_HOME

def launcher = javaToolchains.launcherFor { languageVersion.set(JavaLanguageVersion.of(11)) } tasks.named('anotherSampleTask') { javaHome = launcher.map { it.metadata.installationPath } }
    
© www.soinside.com 2019 - 2024. All rights reserved.