前提・実現したいこと
作ったアプリケーションをherokuを使ってデプロイしたいと思い、procfileにjarファイルを実行させたいのですがうまいことjarファイルが作れないです。
発生している問題・エラーメッセージ
$:java -jar ./build/libs/ProjectName-SNAPSHOT.jar
を実行すると次のようなエラーが出ます。
Exception in thread "main" java.lang.NoSuchMethodException: com.example.ProjectNameApplication.main([Ljava.lang.String;)
該当のソースコード
ProjectNameApplication.kt
kotlin
1package com.example.ProjectName 2 3import org.springframework.boot.autoconfigure.SpringBootApplication 4import org.springframework.boot.runApplication 5 6@SpringBootApplication 7class ProjectNameApplication 8 9fun main(args: Array<String>) { 10 runApplication<CircleIntroductionApplication>(*args) 11} 12
build.gradle.kts
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { application id("org.springframework.boot") version "2.2.6.RELEASE" id("io.spring.dependency-management") version "1.0.9.RELEASE" kotlin("jvm") version "1.3.71" kotlin("plugin.spring") version "1.3.71" } group = "com.example" version = "0.0.1-SNAPSHOT" java.sourceCompatibility = JavaVersion.VERSION_1_8 springBoot{ mainClassName = "com.example.ProjectName.ProjectNameApplication" } repositories { mavenCentral() } dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jdbc") implementation("org.springframework.boot:spring-boot-starter-thymeleaf") implementation("org.springframework.boot:spring-boot-starter-web") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("com.h2database:h2") implementation("org.postgresql:postgresql") testImplementation("org.springframework.boot:spring-boot-starter-test") { exclude(group = "org.junit.vintage", module = "junit-vintage-engine") } } application { // Define the main class for the application mainClassName = "com.example.ProjectName.ProjectNameApplication" } val jar by tasks.getting(Jar::class) { manifest { attributes["Main-Class"] = "com.example.ProjectName.ProjectNameApplication" } from( configurations.compile.get().map { if (it.isDirectory) it else zipTree(it) } ) } tasks.withType<Test> { useJUnitPlatform() } tasks.withType<KotlinCompile> { kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") jvmTarget = "1.8" } }
試したこと
エラーからMain-Classにmainメソッドがないというのはわかるのですがmainメソッドがどこにあるのか分からないです。(ProjectNameApplecationクラスの中にあるのだと思ってました)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/29 12:50