【问题标题】:How to exclude dependencies from Gradle Version Catalog?如何从 Gradle 版本目录中排除依赖项?
【发布时间】:2022-06-11 01:03:04
【问题描述】:

我想执行与以下声明等效的操作:

dependencies {
    implementation('commons-beanutils:commons-beanutils:1.9.4') {
        exclude group: 'commons-collections', module: 'commons-collections'
    }
}

但在版本目录功能中。比如:

dependencyResolutionManagement {
    versionCatalogs {
        libs {
            library('commons-lang3', 'org.apache.commons', 'commons-lang3').exclude {
                // group, module etc
            }
        }
    }
}

【问题讨论】:

    标签: java gradle groovy


    【解决方案1】:

    来自对一个无关紧要的问题的评论:

    https://github.com/gradle/gradle/issues/19517#issuecomment-1012159205

    (...) 目录纯粹是一个可供选择的依赖项列表。

    因此,任何其他内容,例如排除项,您都必须像往常一样在 dependencies { } 块中定义它们。

    【讨论】:

      【解决方案2】:

      有一个简单的方法可以做到这一点,遗憾的是没有记录:

      implementation dependencies.create(libs.commons.beanutils.get()) {
          exclude group: 'commons-collections', module: 'commons-collections'
      }
      

      注意 get() 调用 - 在这种情况下 beanutils 是 Provider<?> 的一个实例,因此您需要手动打开它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-05
        • 1970-01-01
        相关资源
        最近更新 更多