Gradle 构建没有主类的 Spring Boot 库

Posted

技术标签:

【中文标题】Gradle 构建没有主类的 Spring Boot 库【英文标题】:Gradle building Spring Boot library without Main Class 【发布时间】:2019-12-30 21:18:50 【问题描述】:

我正在尝试构建一个 Spring 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

但是当我运行它时,我收到以下错误:

无法获取根项目的未知属性“bootJar” org.gradle.api.Project 类型的“foo-library”。

我的配置需要改变什么?

【问题讨论】:

【参考方案1】:

在你的build.gradle中禁用bootJar

bootJar 
   enabled = false

【讨论】:

但这会阻止创建我需要的 jar,因此我可以将其拉入另一个项目 不,这不会创建但是谁创建了 jar 是这个任务jar enabled = true 我收到错误:Could not find method bootJar() for arguments [build_7m5kgf5tb8ptc46mos1k0piwt$_run_closure23@29435193] on root project 'foo-library' of type org.gradle.api.Project. 你是从你的父母 build.gradle 那里建造的吗?正确的?如果是,则需要在父 build.gradle 中添加 bootJar mainClassName = 'NONE'

以上是关于Gradle 构建没有主类的 Spring Boot 库的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot gradle“找不到或加载主类”

Kotlin Gradle 无法找到或加载主类

Spring Boot找不到主类多模块

通过 gradle 构建后无法找到或加载主类

我应该如何在 Gradle 中为 Spring Boot 应用程序设置主类?

Gradle(包装器)+ STS + Spring Boot:错误:无法找到或加载主类 1.1,