Spring boot 运行gradle生成的脚本运行Kotlin Spring引导运行时出错
我有一个新生成的SpringBoot项目,gradle作为构建工具,Kotlin作为语言。 我在build.gradle.kts中加入了一个应用程序插件,并将其配置为设置主类。 然后我跑:Spring boot 运行gradle生成的脚本运行Kotlin Spring引导运行时出错,spring-boot,kotlin,gradle,Spring Boot,Kotlin,Gradle,我有一个新生成的SpringBoot项目,gradle作为构建工具,Kotlin作为语言。 我在build.gradle.kts中加入了一个应用程序插件,并将其配置为设置主类。 然后我跑: gradle build installDist 结果我得到了build/install/demo/bin和build/install/demo/lib文件夹。 bin文件夹包含运行我的spring boot应用程序的脚本。 不幸的是,当我运行它时,我得到了一个错误: Error: Could not fi
gradle build installDist
结果我得到了build/install/demo/bin和build/install/demo/lib文件夹。
bin文件夹包含运行我的spring boot应用程序的脚本。
不幸的是,当我运行它时,我得到了一个错误:
Error: Could not find or load main class com.example.demo.DemoApplicationKt
Caused by: java.lang.ClassNotFoundException: com.example.demo.DemoApplicationKt
我的build.gradle.kts如下所示:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
application
id("org.springframework.boot") version "2.3.3.RELEASE"
id("io.spring.dependency-management") version "1.0.10.RELEASE"
kotlin("jvm") version "1.3.72"
kotlin("plugin.spring") version "1.3.72"
}
group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_11
repositories {
mavenCentral()
}
application {
mainClass.set("com.example.demo.DemoApplicationKt")
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
testImplementation("org.springframework.boot:spring-boot-starter-test") {
exclude(group = "org.junit.vintage", module = "junit-vintage-engine")
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "11"
}
}
import org.jetbrains.kotlin.gradle.tasks.kotlincomfile
插件{
应用
id(“org.springframework.boot”)版本“2.3.3.RELEASE”
id(“io.spring.dependency management”)版本“1.0.10.RELEASE”
kotlin(“jvm”)版本“1.3.72”
kotlin(“plugin.spring”)版本“1.3.72”
}
group=“com.example”
version=“0.0.1-快照”
java.sourceCompatibility=JavaVersion.VERSION\u 11
存储库{
mavenCentral()
}
应用{
mainClass.set(“com.example.demo.DemoApplicationKt”)
}
依赖关系{
实现(“org.springframework.boot:springbootstarter”)
实施(“org.jetbrains.kotlin:kotlin reflect”)
实现(“org.jetbrains.kotlin:kotlin-stdlib-jdk8”)
测试实现(“org.springframework.boot:springbootstarter测试”){
排除(group=“org.junit.vintage”,module=“junit vintage引擎”)
}
}
tasks.withType{
useJUnitPlatform()
}
tasks.withType{
科特洛普斯酒店{
freeCompilerArgs=listOf(“-Xjsr305=strict”)
jvmTarget=“11”
}
}
我确保类名和包名正确无误,但在运行时出现以下错误:
/build/install/demo/bin/demo
我认为您应该删除应用程序
字段,并添加以下jar
字段:
jar {
manifest {
attributes 'Main-Class': 'com.example.demo.DemoApplicationKt'
}
}