【问题标题】:Is it possible to set a dependencySet entry's classifier using Spring's Gradle dependency management plugin是否可以使用 Spring 的 Gradle 依赖管理插件设置 dependencySet 条目的分类器
【发布时间】:2021-04-11 10:22:20
【问题描述】:

我有一个项目在多项目 Gradle 构建中使用 Spring Dependency Management Plugin 来为项目指定一致的依赖版本。

根据the documentation,当多个依赖共享同一个组和版本时,应该使用一个依赖集:

当您想为具有相同组和版本的多个模块提供依赖项管理时,您应该使用依赖项集。使用依赖集无需多次指定相同的组和版本,如下例所示:

dependencyManagement {
     dependencies {
          dependencySet(group:'org.slf4j', version: '1.7.7') {
               entry 'slf4j-api'
               entry 'slf4j-simple'
          }
     }
}

该项目使用共享组和版本的两个依赖项,但其中一项还指定了一个分类器:

dependencies {
  annotationProcessor 'com.querydsl:querydsl-apt:4.2.2:general'
  implementation 'com.querydsl:querydsl-mongodb:4.2.2'
}

如果有办法在这种情况下使用dependencySet,我在文档或在线搜索中没有找到它:

dependencyManagement {
    dependencies {
        dependencySet(group:'com.querydsl', version: '4.2.2') {
            entry 'querydsl-apt' // Can I specify that this uses the "general" classifier?
            entry 'querydsl-mongodb'
        }
    }
}

简而言之,当其中一个依赖项需要分类器时,有没有办法使用dependencySet,这样做的语法是什么?

【问题讨论】:

    标签: spring gradle dependency-management gradle-dependencies


    【解决方案1】:

    Issue #67 用于依赖管理插件请求此功能。问题是维护者closed,插件维护者的状态为“拒绝”:

    当分类器在 Gradle 中仍然是二等公民时,这是不可能实现的。我不认为这会很快改变(Gradle 3.0 中的情况并没有改善)所以,有些遗憾,我将关闭它。

    该问题的后续对话表明,Gradle 6 中的底层 Gradle 问题仍未解决。

    这意味着分类器不仅不能使用dependencySet 指定,也不能使用dependencyManagement 部分中的dependency 条目指定:

    dependencyManagement {
        dependencies {
            dependency 'com.querydsl:querydsl-apt:4.2.2:general' // INVALID
            dependency 'com.querydsl:querydsl-mongodb:4.2.2'
        }
    }
    

    更糟糕的是,没有发出警告或失败,因此用户并不清楚它没有使用带有分类器的指定版本。

    所以回答这个问题,在dependencyManagement 插件中分类器的使用不受支持,因为Gradle 没有为插件提供访问分类器的API。因此,不能在dependencyManagement 部分中直接使用dependency 或使用dependencySet 作为组来指定带有分类器的依赖版本。

    【讨论】:

      猜你喜欢
      • 2019-01-30
      • 2021-04-21
      • 1970-01-01
      • 2017-11-15
      • 2019-06-01
      • 2022-12-23
      • 2017-09-29
      • 2021-05-18
      • 2013-12-25
      相关资源
      最近更新 更多