spring Gradle构建不带Main Class的Sping Boot 库

kkih6yb8  于 2023-08-02  发布在  Spring
关注(0)|答案(2)|浏览(150)

我正在尝试构建一个Sping Boot /Gradle项目,并创建一个没有主类的jar。我的目的是这个项目是一个库,它将被其他项目拉入,因此库项目不需要主类来运行。不幸的是,无论我编写什么样的gradle配置,当我尝试build install时,我总是会收到错误,因为没有主类或者无法找到bootJar任务。
下面是我的gradle文件的样子:

plugins {
    id 'org.springframework.boot' version '2.1.7.RELEASE' apply false
}

apply plugin: 'io.spring.dependency-management'
apply plugin: 'maven'

dependencyManagement {
    imports {
        mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
    }
}

repositories {
    mavenCentral()
}

jar {
    enabled = true
}

bootJar.dependsOn fooTask

字符串
但是当我运行这个程序时,我得到了以下错误:
无法获取org. gradle. api. Project类型的根项目“foo-library”的未知属性“bootJar”。
配置中的哪些内容需要更改?

wfveoks0

wfveoks01#

关闭build.gradle中的bootJar

bootJar {
   enabled = false
}

字符串

enyaitl3

enyaitl32#

在我的例子中,使用gradle kotlin dsl

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.springframework.boot.gradle.tasks.bundling.BootJar

tasks.getByName<BootJar>("bootJar") {
    enabled = false
}

tasks.getByName<Jar>("jar") {
    enabled = true
}

字符串
解决了问题。
来源:https://github.com/spring-projects/spring-boot/issues/10238#issuecomment-544227301

相关问题