Skip to content

"NoSuchMethodError" for "javac" operations when used alongside "kotlin-compiler" dependency #158

Description

@TAGC

There seems to be some sort of incompatibility issue between this library and "kotlin-compiler". If I try to access operations on Compiler (accessed via javac()) such as withProcessors or withOptions, I get NoSuchMethodError exceptions.

This can be minimally reproduced by creating a Gradle project with a build.gradle.kts file in the root directory:

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.3.0"
}

repositories {
    mavenCentral()
}

dependencies {
    implementation(kotlin("stdlib-jdk8"))
    implementation("com.google.testing.compile:compile-testing:0.15")

    // Problematic import when combined with compile-testing
    implementation("org.jetbrains.kotlin:kotlin-compiler:1.2.51")
}

tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "1.8"
}

And then creating a file src/main/kotlin/experiment.kt under the project root directory:

import com.google.testing.compile.Compiler.javac

fun main(args: Array<String>) {
    javac().withProcessors()
}

Running this gives me:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.ImmutableList.copyOf([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList;
	at com.google.testing.compile.Compiler.withProcessors(Compiler.java:71)
	at experiment.ExperimentKt.main(experiment.kt:6)

Initially raised at cretz/kastree#4.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions