根据依赖关系管理插件#67,不能在 dependencySet
阻止。这个限制将在相关的问题中讨论(是否可以使用spring的gradle依赖管理插件设置dependencyset条目的分类器)。
dependencyManagement {
dependencies {
dependencySet(group:'com.querydsl', version: '4.2.2') {
entry 'querydsl-apt' // This needs to use the "general" classifier
entry 'querydsl-mongodb'
}
}
}
dependencies {
annotationProcessor 'com.querydsl:querydsl-apt:4.2.2:general' // Version needed to use a classifier
implementation 'com.querydsl:querydsl-mongodb'
}
解决这一限制的方法之一是使用 ext
块,并定义版本变量:
ext {
querydslVersion = 4.2.2
}
dependencyManagement {
dependencies {
dependencySet(group:'com.querydsl', version: querydslVersion) {
entry 'querydsl-mongodb'
}
}
}
dependencies {
annotationProcessor "com.querydsl:querydsl-apt:$querydslVersion:general" // Version needed to use a classifier
implementation 'com.querydsl:querydsl-mongodb'
}
这种方法的一个缺点是,它需要设置一个否则不会设置的属性(并且可能需要在多模块插件中的模块之间设置,从而使构建不那么明显)。如果依赖版本是通过bom(例如。 imports { mavenBom 'org.springframework.boot:spring-boot-dependencies:2.3.1.RELEASE'}
,因为这需要手动保持版本与bom值同步。
尽管有此限制,是否仍有方法使用依赖关系管理部分中定义的版本?
1条答案
按热度按时间xpszyzbs1#
spring依赖关系管理插件通过
managedVersions
Map。这可用于获取工件的依赖版本,该版本可用于指定要使用的版本: