Ich bin Teil des Quasar-Teams.
Der Beitrag zitiert Quasar-Tests, die Sie ausführen können, indem Sie das Quasar-Repo klonen und z. gradle :quasar-kotlin:build
(erfordert Gradle installiert), aber für neue Projekte/Experimente empfehle ich stattdessen von der Gradle template, kotlin
branch zu starten, die jetzt den neuesten Kotlin 1.0.1-2
verwendet (und der Einfachheit halber den letzten Quasar 0.7.5-SNAPSHOT
, der davon abhängt).
Ausgehend von dieser Vorlage baute ich (mehr Informationen darüber, wie Sie es konfigurieren und es in der Haupt-README ausführen), die die gleichen Quasar Aktor Tests wie normale Programme statt Tests ausgeführt. Hier ist seine 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'
einige Notizen über die Unterschiede mit dem Build-Datei:
- Da ich die Tests Programme umgewandelt, ich bin auch die
application
Plugin und deren Konfiguration (hier applicationDefaultJvmArgs
und mainClassName
) sowie die standardmäßige Gradle-Task auf run
setzen.
- Zusätzlich zu den oben genannten wurde ein Gradle Wrapper generiert und geschoben, so dass
./gradlew
alles ist, was Sie brauchen in der Befehlszeile, ohne eine lokale Gradle Installation (wie es in einer IDE auszuführen abhängig ist hängt von der IDE)).
- Sie müssen den Quasar-Agenten (oder AoT-Instrumentierung, aber den Agenten hier) ausführen, so gibt es eine
quasar
Konfiguration, die auf das Artefakt zeigt, das dann verwendet wird, um das -javaagent:${configurations.quasar.singleFile}
JVM-Argument zu übergeben.
- Verwenden von Java 8 als Quasar hat eine spezifische optimierte Build für es.
Beachten Sie auch, dass es jetzt ein 1.0
branch of the quasar-kotlin-jetbrains-webinar
project (das ist jetzt die HEAD
eine in der Tat), die die Begleiter Quellcode this guest webinar with IntelliJ enthält, portiert auf die neueste Kotlin und auch Quasar.
Lassen Sie mich wissen, ob dies hilft.
Was ist der Fehler, den Sie bekommen? – miensol
Ich bekomme ungelöste Referenz für den Import co.paralleluniverse.kotlin.Actor – Reidar
Haben Sie versucht, Ihr Projekt von der Konsole aus zu erstellen? Aktualisieren Sie das Projekt in der IDE? Vielleicht klagt nur deine IDE? Diese Klasse befindet sich in einer der referenzierten JARs und sollte verfügbar sein. – madhead