springboot2依赖管理

5.6.1

gradle的api和implementation

api, 同以前的compile, 会引入依赖并传递
implementation, 只会对当前工程引入compile依赖, 但不会传递compile依赖, 传递runtime依赖
compileOnly, 当前工程compileOnly, 无任何传递
runtimeOnly, 当前工程无compile, 但会传递runtime依赖

spring-boot gradle plugin

https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/gradle-plugin/reference/html/#managing-dependencies

dependency-management-plugin

https://github.com/spring-gradle-plugins/dependency-management-plugin

https://github.com/spring-projects/spring-boot/blob/v2.1.7.RELEASE/spring-boot-project/spring-boot-dependencies/pom.xml

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management

// 所有
https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_management

参考 springboot2 工程

https://github.com/spring2go/staffjoy

gradle5

plugins{} vs buildscript{}

plugins{} 比较新, 可以通过一条命令定义插件版本并apply插件. 但是只支持 https://plugins.gradle.org/ 中定义的插件
虽然可以在settings.gradle中通过 pluginManagement{} 来定义私库, 但是仍然无法应用自定义的,尚未上传到gradle官方的插件, 比较不灵活
适合于单工程, 或者仅适用官方插件的工程, 比较简洁

buildscript{} 方式定义比较灵活, 可以定义私库地址, 并把插件加载到类路径, 官方并未指出该方式的废弃日期.
https://stackoverflow.com/a/50153617/6518185

0%