我想在所有子项目中使用平台上的物料清单。 http://platform.spring.io/platform/
该文档描述了如何在单个项目中激活bom。 需要使用spring-boot插件。我们将使用spring-boot插件,但只能在一个子项目中使用。 其他项目应该只从bom中获利,但不包含" main"用于弹簧启动的类。
在根文件夹中运行gradle: gradle build ....
出了什么问题: 任务':子项目执行失败:bootRepackage'。
无法找到主要课程
我在互联网上没有找到任何例子。 如何与子项目共享bom并仍然主动使用spring boot?
谢谢!
更新: 我找到了答案
在父项目的build.gradle中:
子项目{
...
bootRepackage.enabled = false;
bootRun.enabled = false;
...
}
随后在子项目的build.gradle中需要spring-boot:
bootRepackage.enabled = false;
bootRun.enabled = false;
现在gradle构建正确。
此外,在根文件夹中,以下命令将bootRun委派给正确的子模块:
gradle bootRun
答案 0 :(得分:0)
使用io.spring.dependency-management
即使您对Spring Boot不感兴趣,该功能的优点还是you can use Spring's dependency plugin。
build.gradle.kts :
plugins {
id("io.spring.dependency-management").version("1.0.6.RELEASE")
}
subprojects {
apply<DependencyManagementPlugin>()
dependencyManagement {
imports {
mavenBom("com.amazonaws:aws-java-sdk-bom:1.11.409") // Import any bom!
}
}
}
现在在子项目中:
dependencies {
implementation("com.amazonaws:aws-java-sdk-dynamodb")
}
因此,您只应用了io.spring.dependency-management
,而不是整个Spring Boot插件,也无需禁用Spring Boot(看起来像是黑客)。
答案 1 :(得分:-1)
使用Spring IO Platform BOM并不要求您使用Spring Boot。 BOM确实使用Spring Boot进行了补充,但它的主要目的是提供一组策划的依赖项,这些依赖项在Spring项目中可以很好地协同工作。在依赖关系管理中使用它也意味着如果BOM已经提供,则不需要指定所需的依赖关系版本。
使用Spring Boot可以创建一个&#34;微服务&#34;样式Web应用程序,但绝不是使用Spring BOM的要求。如果您只需要在一个模块中使用Spring Boot插件,那么您应该只将它添加到该模块中。