Gradle 可以使用构建脚本依赖项的工具链吗?

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

也就是说,Gradle 可以使用工具链设置来运行自己吗?

我已经在我的 gradle 构建中配置了一个工具链,并且在缺少时可以很好地下载所需的 JDK。我还需要构建脚本依赖项受到工具链的影响,但这不会发生。

示例:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'some:lib:1.0' // This lib requires Java 17
    }
}
java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

在系统上我只有 java 8,所以 Gradle 下载 java 17 来运行应用程序,但尝试获取“some:lib:1.0”的 java 8 库,并使用 17 进行编译,结果失败,并出现类似的内容

未找到 some:lib:1.0 的匹配变体。消费者是 配置为查找运行时使用的库,兼容 Java 8,打包为 jar

java gradle build.gradle
1个回答
0
投票

您正在谈论目前正在孵化的 Daemon JVM 功能。

执行

./gradlew updateDaemonJvm --jvm-version=17
让gradle生成必要的属性文件并提交更改。这将使用与工具链相同的发现功能,使用配置的 Java 版本执行 Gradle Build 本身。

但是:

守护进程 JVM 发现过程不支持自动配置新的 JVM 安装。这将在未来的版本中添加。

© www.soinside.com 2019 - 2024. All rights reserved.