【问题标题】:Gradle7 Version Catalog: How to use it with buildSrc?Gradle7 版本目录:如何与 buildSrc 一起使用?
【发布时间】:2021-06-01 19:59:56
【问题描述】:

我对孵化版本目录功能感到非常兴奋,并一直在尝试它。我发现我的 gradle/libs.versions.toml 中的信息可以在我的 app 和实用程序库项目的 build.gradle.kts 脚本中访问。

但是,我无法将 toml 文件的内容用于 buildSrc/build.gradle.kts 或约定文件。我可以构建的唯一方法是将依赖项硬编码到这些文件中,就像我在版本目录功能之前所做的那样。在 buildSrc 项目中,我创建了一个 settings.gradle.kts 文件并为 versionCatalogs 插入了dependencyResolutionManagement 代码,它指向与我的应用程序和实用程序库项目相同的文件。

根据 Gradle7 文档,与 buildSrc 和项目共享版本目录似乎是目的……如果可能的话,我希望能推动它与 buildSrc 一起工作。

这是我通过“gradle init”创建的简单示例项目的 uri: enter link description here

感谢您的时间和帮助,

迈克

【问题讨论】:

标签: gradle build.gradle gradle-plugin gradle-kotlin-dsl


【解决方案1】:

使用 Gradle 7.3.3,这是可能的。

buildSrc/settings.gradle.kts

enableFeaturePreview("VERSION_CATALOGS")

dependencyResolutionManagement {
    versionCatalogs {
        create("libs") {
            from(files("../gradle/libs.versions.toml"))
        }
    }
}

buildSrc/build.gradle.kts


dependencies {
    implementation(libs.gradleplugin.intellij) // <- the lib reference
}

您甚至可以使用插件的版本目录

gradle/libs.versions.toml

...

[plugins]
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
jetbrains-changelog = { id = "org.jetbrains.changelog", version.ref = "changelog-plugin" }
jetbrains-intellij = { id = "org.jetbrains.intellij", version.ref = "intellij-plugin" }
hierynomus-license = { id = "com.github.hierynomus.license", version.ref = "license-plugin" }
nebula-integtest = { id = "nebula.integtest", version.ref = "nebula-integtest-plugin" }

build.gradle.kts

plugins {
    id("java")
    alias(libs.plugins.kotlin.jvm)
    alias(libs.plugins.nebula.integtest)
    alias(libs.plugins.jetbrains.intellij)
    alias(libs.plugins.jetbrains.changelog)
    alias(libs.plugins.hierynomus.license)
}

快速注意,IntelliJ IDEA 2021.3.2 RC 可能会将libs.gradleplugin 报告为错误,尽管依赖关系已正确解决

【讨论】:

  • 对于gradle目录下的libs.versions.toml文件,不需要添加VersionCatalog部分。如果该文件存在于该目录中,则 libs 版本目录可用。使用 gradle 7.4,不再需要 enableFeaturePreview("VERSION_CATALOGS")。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 2020-02-24
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多