El ejemplo de Kotlin Quasar no funciona
Estoy probando el ejemplo del actor Kotlin Quasar. Quasar y Kotlin: una combinación poderosa Entonces, la pregunta es, ¿está este ejemplo desactualizado y hay alguna documentation en la que pueda descubrir cómo usar Kotlin y Quasar?
Este es mi file gradle.build.
- Función en línea del error del comstackdor de Kotlin, no estoy seguro de qué está pasando
- Tema de Kotlin Quasar y problema de locking de canales
- ¿Cómo puedo cambiar la versión del comstackdor de Kotlin en IntelliJ?
- Kotlin Capsule Gradle Error
- ¿Vale la pena replace Quasar y Comsat con Ktor?
group 'no.inmeta.kotlin.akka' version '1.0-SNAPSHOT' buildscript { ext.kotlin_version = '1.0.1' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin' repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile "co.paralleluniverse:quasar-kotlin:0.7.4" testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version" }
Soy parte del equipo Quasar.
La publicación cita testings de Quasar que puedes ejecutar clonando el repository Quasar y ejecutando, por ejemplo, gradle :quasar-kotlin:build
(requiere la installation de Gradle), pero para nuevos proyectos / experimentos sugiero que comiences desde la plantilla de kotlin
, la twig kotlin
que ahora usa el último Kotlin 1.0.1-2
(y para simplificar, el último Quasar 0.7.5-SNAPSHOT
que depende de él).
A partir de esa plantilla, construí este proyecto (más información sobre cómo configurarlo y ejecutarlo en el file README principal) que ejecuta las mismas testings Quasar actor que los progtwigs normales en lugar de las testings. Aquí está su build.gradle
:
group 'no.inmeta.kotlin.akka' version '1.0-SNAPSHOT' buildscript { ext.kotlinVer = '1.0.1-2' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVer" } } apply plugin: 'kotlin' apply plugin: 'application' [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' sourceCompatibility = 1.8 // 1.7 targetCompatibility = 1.8 // 1.7 configurations { quasar } configurations.all { resolutionStrategy { failOnVersionConflict() } } repositories { // mavenLocal() mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/releases" } maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } // maven { url 'https://maven.java.net/content/repositories/snapshots' } } ext.classifier = ':jdk8' // ':' ext.quasarVer = '0.7.5-SNAPSHOT' dependencies { compile "co.paralleluniverse:quasar-core:${quasarVer}${classifier}" compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVer" compile "org.jetbrains.kotlin:kotlin-reflect:$kotlinVer" compile "co.paralleluniverse:quasar-kotlin:${quasarVer}" quasar "co.paralleluniverse:quasar-core:${quasarVer}${classifier}@jar" } applicationDefaultJvmArgs = [ "-Dco.paralleluniverse.fibers.verifyInstrumentation=true", "-Dco.paralleluniverse.fibers.detectRunawayFibers=false", "-javaagent:${configurations.quasar.singleFile}" // =v, =d ] // mainClassName = 'co.paralleluniverse.kotlin.actors1.PingPongKt' mainClassName = 'co.paralleluniverse.kotlin.actors2.PingPongWithDeferKt' task wrapper(type: Wrapper) { gradleVersion = '2.12' } defaultTasks 'run'
Algunas notas sobre las diferencias con su file de compilation:
- Desde que convertí las testings a los progtwigs,
mainClassName
el complemento de laapplication
y su configuration (aquí,applicationDefaultJvmArgs
ymainClassName
) y también establecí la tarea pnetworkingeterminada de Gradle pararun
. - Además de lo anterior, se ha generado y enviado un contenedor gradle para que
./gradlew
sea todo lo que necesita en la command-line, sin necesidad de tener una installation local de Gradle (la forma de ejecutarlo en un IDE depende del IDE) . - Necesita ejecutar el agente Quasar (o la instrumentación AoT pero usando el agente aquí) de modo que haya una configuration de
quasar
apunte al artefacto que luego se usa para pasar el argumento JVM-javaagent:${configurations.quasar.singleFile}
. - Usando Java 8 como Quasar tiene una compilation optimizada específica para él.
También tenga en count que ahora hay una twig 1.0
del proyecto quasar-kotlin-jetbrains-webinar
(que ahora es el HEAD
uno en realidad), que contiene el código fuente complementario de este seminario web invitado con IntelliJ , portado a los últimos Kotlin y Quasar también.
Déjeme saber si esto ayuda.