Spring boot Gradle spring启动错误-java.lang.ClassNotFoundException:org.springframework.boot.SpringApplication

Spring boot Gradle spring启动错误-java.lang.ClassNotFoundException:org.springframework.boot.SpringApplication,spring-boot,gradle,intellij-idea,gradle-plugin,Spring Boot,Gradle,Intellij Idea,Gradle Plugin,下面是我的build.gradle文件。我正在使用java 11和IntelliJ 2019.2.2。在运行应用程序时,我在线程“main”java.lang.NoClassDefFoundError:org/springframework/boot/SpringApplication中得到:Exception 因此,当您从gradle 2.x版升级到任何3.4版以后的版本时,出现的错误或问题似乎都是相同的,但我不应该在任何最新的IntelliJ版本中出现错误。我已经清理了存储库、idea缓存等

下面是我的build.gradle文件。我正在使用java 11和IntelliJ 2019.2.2。在运行应用程序时,我在线程“main”java.lang.NoClassDefFoundError:org/springframework/boot/SpringApplication中得到:Exception

因此,当您从gradle 2.x版升级到任何3.4版以后的版本时,出现的错误或问题似乎都是相同的,但我不应该在任何最新的IntelliJ版本中出现错误。我已经清理了存储库、idea缓存等。主类(com.itreatmd.emr.Application)只有一行-SpringApplication.run(Application.class,args),这会引发此异常

另外,当我从命令行构建tar文件,然后分解tar文件时,我没有看到打包在tar文件的lib文件夹下的jar文件。很明显,我遗漏了一些东西,可能是一些显而易见的东西,但我就是无法理解

buildscript {
    ext {
        springBootVersion = '2.2.1.RELEASE'
    }
    repositories {
        jcenter()
        maven { url "http://repo.spring.io/snapshot" }
        maven { url "http://repo.spring.io/milestone" }
    }

    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
    }
}


plugins {
    id 'org.springframework.boot' version '2.2.1.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    id 'java'
    id 'application'
    id 'idea'
}
mainClassName = 'com.itreatmd.emr.Application'
group = 'com.itreatmd.emr'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

jar {
    baseName = 'emrServices'
    version = '1.0-SNAPSHOT'
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-jersey'
    compile group: 'com.google.code.gson', name: 'gson', version: '2.7'
    compile group: 'commons-codec', name: 'commons-codec', version: '1.5'
    compile group: 'commons-io', name: 'commons-io', version: '2.6'
    compile group: 'org.json', name: 'json', version: '20180813'
    compile "org.apache.httpcomponents:httpmime:4.2.3"
    compile group: 'org.yaml', name: 'snakeyaml', version: '1.8'
    compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.3.1'
    compile group: 'org.springframework', name: 'spring-webmvc', version: '3.1.1.RELEASE'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

jar {
    manifest {
        attributes 'Main-Class': 'com.itreatmd.emr.Application',
                'Class-Path': configurations.runtime.files.collect { "lib/$it.name" }.join(' ')
    }
}

我使用的是spring boot 2.2.5和gradle 5.1.2

运行
gradlebuild-x测试
,它将告诉您它是什么错误

在我的例子中,它告诉我,
错误:包org.jasig.cas.client.authentication不存在
,但这个包实际上存在

然后我记得我添加了一个依赖项
runtimeOnly'org.apereo.cas:cas服务器支持验证:5.3.15.1'


在注释完这个依赖项之后,我的项目就可以开始成功了。

我正在使用spring boot 2.2.5和gradle 5.1.2

运行
gradlebuild-x测试
,它将告诉您它是什么错误

在我的例子中,它告诉我,
错误:包org.jasig.cas.client.authentication不存在
,但这个包实际上存在

然后我记得我添加了一个依赖项
runtimeOnly'org.apereo.cas:cas服务器支持验证:5.3.15.1'


在注释完此依赖项后,我的项目可以开始成功。

这是否回答了您的问题?恐怕没有。该问题中讨论的问题与2016年的IntelliJ版本有关。我的症状完全相同。这能回答你的问题吗?恐怕没有。该问题中讨论的问题与2016年的IntelliJ版本有关。我的症状完全相同。