使用Gradle和Kotlin进行编译失败

时间:2017-08-11 15:28:28

标签: compilation kotlin junit4

我正在阅读Kotlin in Action书中的例子。 gradle buid脚本如下:

group 'kotlin-in-action'
version '1.0-SNAPSHOT'

buildscript {
    ext.kotlin_version = '1.1.2-2'

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'kotlin'

repositories {
    mavenCentral()
}
apply plugin: 'java'

dependencies {
    testCompile 'junit:junit:4.12'
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
    compile "junit:junit:4.12"
    compile 'junit:junit:4.12'
    compile 'junit:junit:4.12'
}

sourceSets {
    main.kotlin.srcDirs += 'src'
}

除了使用junit的两个类之外,所有脚本都编译。

package ch06.ex1_8_1_LateinitializedProperties

import org.junit.Before
import org.junit.Test
import org.junit.Assert

class MyService {
    fun performAction(): String = "foo"
}

class MyTest {
    private var myService: MyService? = null

    @Before fun setUp() {
        myService = MyService()
    }

    @Test fun testAction() {
        Assert.assertEquals("foo",
            myService!!.performAction())
    }
}

编译器说它无法找到junit。我尝试在IntelliJ中添加jar文件,但这还没有解决问题。我添加的jar文件是junit和hamscrest-core。这是版本4.12。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。我不得不从mavan存储区添加Junit和hamcrest-core jar文件。