使用gradle BOM和spring-boot(多模块应用程序)哪种方式更好
Posted
技术标签:
【中文标题】使用gradle BOM和spring-boot(多模块应用程序)哪种方式更好【英文标题】:What way is better for use gradle BOM and spring-boot(multimodular application) 【发布时间】:2019-08-25 01:12:33 【问题描述】:我使用Gradle
来构建我的spring-boot
应用程序。我想要什么?
我有一个多模块应用程序,其中一些模块是spring-boot
应用程序。我想在父项目的 Gradle 文件中获取BOM
spring 依赖项,并使用所有没有版本的库。
现在我有了下一个配置:
buildscript
repositories
mavenCentral()
dependencies
classpath("org.springframework.boot:spring-boot-gradle-plugin:$springBootVersion")
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
我在每个模块中复制了这段代码。我读了Gradle
documentation 并看到了这个:
插件本身不会自动应用 Spring Dependency 管理插件了。相反,它确实对 Spring 做出反应 依赖管理插件被应用和配置 spring-boot-dependencies BOM(物料清单。我们将进入更多 本文稍后会详细介绍 BOM 支持。)
下面有一个例子:
plugins
id 'java'
id 'com.gradle.build-scan' version '1.16'
id 'org.springframework.boot' version '2.0.5.RELEASE'
dependencies
implementation 'org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE'
...
我很困惑。什么变种更好?我尝试像此文档一样更改我的代码,但出现错误:
> Could not resolve all files for configuration ':my-server:compileClasspath'.
> Could not find org.springframework.boot:spring-boot-starter-data-jpa:.
Required by:
project :my-server
> Could not find org.springframework.boot:spring-boot-starter-cache:.
Required by:
project :my-server
> Could not find org.springframework.boot:spring-boot-configuration-processor:.
Required by:
project :my-server
> Could not find org.hibernate:hibernate-jpamodelgen:.
Required by:
project :my-server
> Could not find org.projectlombok:lombok:.
Required by:
project :my-server
> Could not find org.springframework.kafka:spring-kafka:.
Required by:
project :my-server
【问题讨论】:
【参考方案1】:您仍然需要为您的依赖项定义repositories
。将以下行添加到您的 build.gradle。
repositories
mavenCentral()
【讨论】:
以上是关于使用gradle BOM和spring-boot(多模块应用程序)哪种方式更好的主要内容,如果未能解决你的问题,请参考以下文章
Gradle 5 JUnit BOM 和 Spring Boot 版本不正确
如何使用 spring-boot gradle 插件进行 proguard
Spring-boot 和 Gradle:构建时间太长 - 如何调试?
使用 Gradle、Groovy 和 spring-boot 加载失败并出现 java.lang.NoSuchFieldException:classCache