@glodev

Как задать стартовый клас в gradle (Kotlin, KotlinDSL,Gradle)?

Имеется build.gradle
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet

plugins {
    java
    kotlin("jvm") version "1.3.70-eap-184"
    application
}
    group = "dev.glo"
    version = "1.0-SNAPSHOT"
    application {
        mainClassName = "dev.glo.Main"
    }
    repositories {
        maven { setUrl("https://dl.bintray.com/kotlin/kotlin-eap") }
        mavenCentral()
    }

    dependencies {
        implementation(kotlin("stdlib-jdk8"))
        testImplementation(kotlin("test"))
        implementation("com.google.guava", "guava", "28.2-jre")

    }

    sourceSets["main"].withConvention(KotlinSourceSet::class) { kotlin.srcDir("src/main/dev/glo/Main") }
    configure<JavaPluginConvention> {
        sourceCompatibility = JavaVersion.VERSION_1_8
    }

    tasks {
        compileKotlin {
            kotlinOptions.jvmTarget = "1.8"
        }
        compileTestKotlin {
            kotlinOptions.jvmTarget = "1.8"
        }
    }


Просторы интернета не подсказали решения вопроса к сожалению, много решений они разные, но не работают. (Причина как я понимаю в том что в основном решения написаны не на kotlinDSL и не под Kotlin)

5e5907dceabc4516294681.png

no main manifest attribute, in D:\IdeaProjects\testGradle\build\libs\testGradle-1.0-SNAPSHOT.jar
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
@glodev Автор вопроса
tasks {
        compileKotlin {
            kotlinOptions.jvmTarget = "1.8"
        }
        compileTestKotlin {
            kotlinOptions.jvmTarget = "1.8"
        }
        jar {
            manifest {
                attributes(
                    mapOf(
                        "Implementation-Title" to project.name,
                        "Implementation-Version" to project.version,
                        "Main-Class" to mainClassNameProject
                    )
                )
            }

        }
    }


Сам спросил сам отвечу )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@koperagen
Попробуйте поменять
mainClassName = "dev.glo.Main"
на
mainClassName = "dev.glo.MainKt"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы