据我所知,gradle在设置依赖项时需要版本号,但允许使用部分通配符.例如,如果我想要番石榴,我不能这样做,因为它失败了:
compile('com.google.guava:guava')
它必须(作为一个例子):
compile('com.google.guava:guava:21.0')
但是,我正在学习Spring,它有以下几点:
compile("org.springframework.boot:spring-boot-starter") compile("org.springframework:spring-web") compile("com.fasterxml.jackson.core:jackson-databind")
这些依赖项如何在没有提供版本的情况下工作?
是因为以下内容,但我认为只有我的插件'org.springframework.boot'需要这些行:
buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.3.RELEASE") } }
hakamairi.. 17
值得一提的是,招被称为BOM(物料清单)和实际版本可以在相关检查POM内部文件弹簧引导的依赖包.这在Spring Boot官方文档中提到:Build Systems.
Spring提供的另一种方式(对于非Boot项目)是通过Spring Platform BOM实际提供以下依赖项的版本.
buildscript { repositories { jcenter() } dependencies { classpath 'io.spring.gradle:dependency-management-plugin:0.6.0.RELEASE' } } apply plugin: 'io.spring.dependency-management' dependencyManagement { imports { mavenBom 'io.spring.platform:platform-bom:Athens-SR2' } }
Opal.. 9
TL; DR - spring boot使用自定义依赖项解析器.
一个spring boot插件,应用了以下代码:
apply plugin: 'spring-boot'
处理没有版本列出的依赖项.这个逻辑在这个类中实现,它将它委托给这里.这里DependencyManagementPluginFeatures
适用.
值得一提的是,招被称为BOM(物料清单)和实际版本可以在相关检查POM内部文件弹簧引导的依赖包.这在Spring Boot官方文档中提到:Build Systems.
Spring提供的另一种方式(对于非Boot项目)是通过Spring Platform BOM实际提供以下依赖项的版本.
buildscript { repositories { jcenter() } dependencies { classpath 'io.spring.gradle:dependency-management-plugin:0.6.0.RELEASE' } } apply plugin: 'io.spring.dependency-management' dependencyManagement { imports { mavenBom 'io.spring.platform:platform-bom:Athens-SR2' } }
TL; DR - spring boot使用自定义依赖项解析器.
一个spring boot插件,应用了以下代码:
apply plugin: 'spring-boot'
处理没有版本列出的依赖项.这个逻辑在这个类中实现,它将它委托给这里.这里DependencyManagementPluginFeatures
适用.
在春天的Gradle启动插件文件规定如下:
您声明的spring-boot gradle插件的版本确定导入的spring-boot-starter-parent bom的版本(这可确保构建始终可重复).您应该始终将spring-boot gradle插件的版本设置为您要使用的实际Spring Boot版本.