我开发了一个controllerAdvice,我想将其放入一个库中,供多个微服务使用; 由于我的库使用的是Spring注释,因此我为springboot添加了插件和依赖项。但是,当我添加
apply plugin: 'org.springframework.boot'
这在构建步骤中增加了bootJar步骤。 bootJar要求我也应该为Spring Boot提供一个我不想要的东西,因为我的jar只是一个库,而不是springboot应用程序。
这是我的gradle.build脚本的一部分:
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.test'
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
repositories {
mavenCentral()
maven {
url = artifactoryRepoUrl
}
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-web')
compile("org.springframework.boot:spring-boot-configuration-processor")
compile("org.springframework.boot:spring-boot-starter-hateoas")
testCompile('org.springframework.boot:spring-boot-starter-test')
compileOnly('org.projectlombok:lombok:1.18.6')
annotationProcessor('org.projectlombok:lombok:1.18.6')
}
如何解决此问题?
答案 0 :(得分:1)
听起来您将从单独使用Spring Boot的依赖管理中受益。这将管理您的依赖版本,同时使您的项目构建一个普通的jar而不是Spring Boot的胖jar。 Gradle插件的参考文档describes how to do this。第一步是依赖插件而不应用插件。如果您使用的是plugins
块,则如下所示:
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE' apply false
}
对于您来说,删除apply plugin: 'org.springframework.boot'
就足够了。
您已经在应用依赖性管理插件,所以剩下的步骤是配置Boot的依赖性管理:
dependencyManagement {
imports {
mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
}
}
这将允许您继续声明没有版本的依赖项。然后,您可以运行jar
任务来构建适合用作依赖项的普通jar。
答案 1 :(得分:1)
您需要做的就是禁用bootJar
任务并启用jar
任务(这将创建普通的jar而不是可执行的jar)。在您的 build.gradle 文件中添加以下代码段:
bootJar {
enabled = false
}
jar {
enabled = true
}