Spring Gradle生成失败:尚未配置主类名,无法解析

Spring Gradle生成失败:尚未配置主类名,无法解析,spring,gradle,Spring,Gradle,我正在按照指南使用Spring构建一个RESTful web服务。我正在使用grable构建应用程序,但构建失败 我在Windows10机器上使用了“buildgradle”命令 这是gradle代码: buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plug

我正在按照指南使用Spring构建一个RESTful web服务。我正在使用grable构建应用程序,但构建失败

我在Windows10机器上使用了“buildgradle”命令

这是gradle代码:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.1.6.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

bootJar {
    baseName = 'gs-rest-service'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
我得到以下错误:

任务“:bootJar”的执行失败

主类名尚未配置,无法解析


因此,您可以对其进行配置。请尝试:

apply plugin: 'application'
mainClassName = 'com.example.WebApplication'
在我的例子中,(使用)它是由src文件夹引起的,主类文件没有位于src/main文件夹下。 此外,我已经清理了所有东西并重新启动了IDE。 正如@Zaziro提到的,我也尝试过,但没有任何运气。 但是有一些文章提到了配置

在与Github中的src代码进行比较之后,这与任何包的任何版本无关


祝你好运:-)

如果你正在构建多模块项目,并且包含一个不是springboot项目的模块,那么你应该把这个放在非springboot模块中的gradle.build上

bootJar {
    enabled = false
}

jar {
    enabled = true
}

当我使用kotlin并将
main
方法放错位置时,我遇到了这个错误

错:

@SpringBootApplication
class Application {
    fun main(args: Array<String>) {
        runApplication<Application>(*args)
    }
}

正如@Zaziro所提到的,可以定义一个配置

该站点非常好地描述了不同类型的配置:

如果您正在使用KOTLIN: 请注意,您的类名已更改。您需要在mainClassName后面加上“Kt”


示例:“com.example.Application”->“com.example.ApplicationKt

我试图按照应用程序中有CommandLineRunner的说明进行操作。CommandLineRunner中的代码只有在我将bean和main方法包装到类中时才会运行。我可以让测试运行,但不能通过命令行。我可以通过使用一个伴生对象来解决这个问题:

@SpringBootApplication
class TestApplication {

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            runApplication<TestApplication>(*args)
        }
    }

    @Bean
    fun commandLineRunner(ctx: ApplicationContext): CommandLineRunner {
        ...
    }
}
@springboot应用程序
类测试应用程序{
伴星{
@JvmStatic
趣味主线(args:Array){
运行应用程序(*args)
}
}
@豆子
趣味commandLineRunner(ctx:ApplicationContext):commandLineRunner{
...
}
}

如何对spring kotlin执行同样的操作,因为主类名没有主函数。完全救了我!我是Kotlin的新手,犯了同样的错误。在另一个例子中,用@SpringBootApplication标记的java类在主方法中没有
static
修饰符
@SpringBootApplication
class TestApplication {

    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            runApplication<TestApplication>(*args)
        }
    }

    @Bean
    fun commandLineRunner(ctx: ApplicationContext): CommandLineRunner {
        ...
    }
}