Kotlin Quasar例子不起作用

时间:2016-04-19 13:03:53

标签: gradle kotlin quasar

我正在测试Kotlin Quasar演员的例子。 Quasar and Kotlin – a Powerful Match 所以问题是,这个例子是否过时了,是否有任何文件可以让我知道如何使用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"
}

1 个答案:

答案 0 :(得分:2)

我是Quasar团队的一员。

该帖子引用了Quasar测试,您可以通过克隆Quasar repo并运行例如gradle :quasar-kotlin:build(需要安装Gradle)但是对于新项目/实验我建议从现在使用最新Kotlin 1.0.1-2的{​​{3}}开始(为简单起见,最新的Quasar {{1}这取决于它。)

从该模板开始,我构建了Gradle template, kotlin branch(有关如何配置它并在主README中运行它的更多信息),它运行与正常程序相同的Quasar actor测试,而不是测试。这是0.7.5-SNAPSHOT

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' 插件及其配置(此处为applicationapplicationDefaultJvmArgs)以及设置默认的Gradle任务到mainClassName
  • 除了上述内容之外,还生成并推送了一个gradle包装器,以便在命令行中只需要run,而无需安装本地Gradle(如何在IDE中运行它)取决于IDE)。
  • 您需要运行Quasar代理(或AoT检测,但在此处使用代理),因此sa ./gradlew配置指向工件,然后用于传递quasar JVM参数
  • 使用Java 8作为Quasar有一个特定的优化版本。

另请注意,现在有一个this project(实际上现在是-javaagent:${configurations.quasar.singleFile}),其中包含1.0 branch of the quasar-kotlin-jetbrains-webinar project的伴随源代码,移植到最新的Kotlin和Quasar同样。

如果有帮助,请告诉我。