Could not find testCompile() for


#1

So, as a n00b I thought to add some testing stuff to a project with

buildscript {
    ext.kotlin_version = '1.2.71'
    // yaddayadda.... 
}

dependencies {
    compile "org.json:json:20180813"
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
    // more yadda.... 
}

Issuing ./gradlew build throws the following in my face:

> Could not find method testCompile() for arguments [org.jetbrains.kotlin:kotlin-test:1.2.71] on object type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

I’m baffled…


#2

Post the entire script and in the meantime you may try to run in console from the project root directory gradlew build and post the output as well


#3

Well, here’s the build.gradle contents at the moment:

buildscript {
	ext.kotlin_version = '1.2.71'
	repositories {
		maven { url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" }
		maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
		mavenCentral()
	}
	dependencies {
		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
		classpath "org.jetbrains.kotlin:kotlin-native-gradle-plugin:1.3.0-rc-146"
    }
}

apply plugin: 'org.jetbrains.kotlin.platform.native'

repositories {
	maven { url "https://dl.bintray.com/jetbrains/kotlin-native-dependencies" }
	maven { url "https://dl.bintray.com/kotlin/kotlin-eap" }
	mavenCentral()
}

dependencies {
	compile "org.json:json:20180813"
	compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
//	testCompile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
//	testCompile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
	testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
}

components.main {
	outputKinds = [EXECUTABLE]
	version = "0.0.0.2"
	dependencies {
		cinterop('libcurl-interop') {
			defFile 'src/main/c_interop/libcurl.def'
			target('linux_x64') {
				includeDirs.headerFilterOnly '/usr/include', '/usr/include/x86_64-linux-gnu'
			}
		}
	}
}

And console output from project root:


FAILURE: Build failed with an exception.

* Where:
Build file '/home/anikaiful/Dropbox/Projects/kotlin/edsms/build.gradle' line: 33

* What went wrong:
A problem occurred evaluating root project 'edsms'.
> Could not find method testCompile() for arguments [org.jetbrains.kotlin:kotlin-test:1.2.71] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

#4

testCompile and compile are the old gradle method names. You should use testImplementation and implementation. However you are mixing as plugin kotlin 1.2.71 with 1.3.0-rc… Use one version, as mixing will violate all kinds of assumptions.


#5

Ah, compile -> implementation. That sorted that, thanks :smiley:

But if I try use e.g. ... -native-gradle-plugin:$kotlin_version I get a sorry error that Could not find org...plugin:1.2.71, followed by a litany of searched sites, whereas 1.3.0-rc-146 is found just fine.


#6

You probably want to use 1.3.0-rc-190 across (no reason not to use the latest prerelease), or use the old multiplatform plugins for native (especially on native there has been a lot of work in the new ones so if you can stick with pre-release that is probably better).


#7

Much appreciated suggestion :grin: - did that and no more errors. For some reason I didn’t realise that version upgrade was as simple as changing the ext.kotlin_version in the script… :zipper_mouth_face: thought it meant version which you already have, and not something that gradle will fetch for you if you don’t have.