Kotlin Quasar例子不工作
我正在测试Kotlin Quasar演员的例子。 类星体和科特林 – 强大的匹配所以问题是,这个例子是否过时了,是否有任何文件,我可以找到如何使用Kotlin和Quasar?
这是我的gradle.build文件。
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" }
我是Quasar团队的一员。
这篇文章引用了Quasar测试,你可以通过克隆Quasar repo和运行gradle :quasar-kotlin:build
运行gradle :quasar-kotlin:build
(需要安装Gradle),但是对于新的项目/实验,我建议从Gradle模板开始,现在使用kotlin
分支最新的Kotlin 1.0.1-2
(为了简单起见,最新的Quasar 0.7.5-SNAPSHOT
取决于它)。
从该模板开始,我构建了这个项目 (关于如何配置它并在主README中运行它的更多信息),它运行与普通程序相同的类星体演员测试而不是测试。 这是它的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'
关于与你的构建文件的差异的一些注意事项:
- 由于我将测试转换为程序,因此我将包含
application
插件及其配置(这里是applicationDefaultJvmArgs
和mainClassName
),并设置默认的Gradle任务run
。 - 除了上面的内容之外,还生成了一个gradle包装器,这样就可以在命令行上使用
./gradlew
,而不需要本地的Gradle安装(如何在IDE中运行它依赖于IDE) 。 - 您需要运行Quasar代理(或者AoT工具,但是在这里使用代理),所以有一个指向工件的
quasar
配置,然后用来传递-javaagent:${configurations.quasar.singleFile}
JVM参数。 - 使用Java 8作为Quasar有一个特定的优化版本。
另外请注意,现在有一个quasar-kotlin-jetbrains-webinar
项目的1.0
分支 (实际上它是HEAD
一个),它包含了IntelliJ这个访客网络研讨会的配套源代码,移植到最新的Kotlin和Quasar以及。
让我知道这是否有帮助。