Как отладить веб-приложение Kolin Vertx в IDE Intellij? - PullRequest
0 голосов
/ 24 января 2019

Я создал веб-приложение Kotlin Vertx, которое работает с Gradle. Но когда я пытаюсь отладить его, запустив конфигурацию отладки Intellij, точки останова не появляются. Как я могу заставить эти контрольные точки работать?

buildscript {
    ext {
        kotlinVersion = '1.2.60'
    }

    repositories {
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
    }
}

plugins {
    id 'java'
    id 'application'
    id 'com.github.johnrengelman.shadow' version '2.0.4'
    id 'org.jetbrains.kotlin.jvm' version '1.3.11'
    id 'jacoco'
    id 'de.jansauer.printcoverage' version '2.0.0'}

jacoco{
    toolVersion = '0.8.2'
}

jacocoTestCoverageVerification {
    violationRules {
        rule {
            limit {
                minimum = 0.1
            }
        }
    }
}


jacocoTestReport {
    reports {
        csv.enabled true
        xml.enabled true
        html {
            enabled true
            destination file("$buildDir/reports/jacoco")
        }
    }
    executionData(test)
}

tasks.build.dependsOn(jacocoTestReport)

printcoverage {
    coverageType = 'INSTRUCTION'
}

apply plugin: 'kotlin'

ext {
    kotlinVersion = '1.2.60'
    vertxVersion = '3.6.2'
    junitJupiterEngineVersion = '5.2.0'
}

repositories {
    mavenLocal()
    jcenter()
}

group 'com.joyfulyell'
version '1.0-SNAPSHOT'

sourceCompatibility = '1.8'
mainClassName = 'io.vertx.core.Launcher'

def mainVerticleName = 'io.vertx.starter.MainVerticle'
def watchForChange = 'src/**/*'
def doOnChange = './gradlew classes'

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    compile "io.vertx:vertx-core:$vertxVersion"
    compile "io.vertx:vertx-web:$vertxVersion"
    compile "io.vertx:vertx-lang-kotlin:$vertxVersion"
    compile "io.vertx:vertx-mongo-client:$vertxVersion"
    implementation 'org.kodein.di:kodein-di-generic-jvm:6.0.1'
    compile "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.+"
    compile 'com.beust:klaxon:5.0.3'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.0'

    testImplementation "io.vertx:vertx-junit5:$vertxVersion"
    testRuntime("org.junit.jupiter:junit-jupiter-engine:$junitJupiterEngineVersion")
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

shadowJar {
    classifier = 'fat'
    manifest {
        attributes 'Main-Verticle': mainVerticleName
    }
    mergeServiceFiles {
        include 'META-INF/services/io.vertx.core.spi.VerticleFactory'
    }
}

test {
    useJUnitPlatform()
    testLogging {
        events 'PASSED', 'FAILED', 'SKIPPED'
    }
    reports {
        junitXml.enabled = true
        html.enabled = true
    }
    jacoco{
        append = false
        destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
        classDumpDir = file("$buildDir/jacoco/classpathdumps")
    }
}

run {
    args = ['run', mainVerticleName,
            "--redeploy=$watchForChange",
            "--launcher-class=$mainClassName",
            "--on-redeploy=$doOnChange"
    ]
}

task wrapper(type: Wrapper) {
    gradleVersion = '5.0'
}

enter image description here

1 Ответ

0 голосов
/ 26 января 2019

Вы должны быть в состоянии запустить отладку просто отлично, настроив Gradle следующим образом:

enter image description here

И нажмите кнопку отладки. Протестировал его используя вашу конфигурацию.

Просто убедитесь, что вы указали правильное имя вертикали в вашем build.gradle:

def mainVerticleName = 'io.vertx.starter.MainVerticle'

...