Skip to content

polyglot-kotlin 0.4.6 breaks Kotlin 2.1.20 compiler on a Quarkus project - "A required class was missing" #345

@OndraZizka

Description

@OndraZizka

I have a Kotlin project. Maven 3.9.9.

When I added the polyglot-kotlin extension, the Kotlin compiler stops working:

[ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:2.1.20:compile (compile) on project config-hub-http-server: Execution compile of goal org.jetbrains.kotlin:kotlin-maven-plugin:2.1.20:compile failed: A required class was missing while executing org.jetbrains.kotlin:kotlin-maven-plugin:2.1.20:compile: kotlin/enums/EnumEntriesKt
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.jetbrains.kotlin:kotlin-maven-plugin:2.1.20--605808543
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/o/.m2/repository/org/jetbrains/kotlin/kotlin-maven-plugin/2.1.20/kotlin-maven-plugin-2.1.20.jar
[ERROR] urls[1] = file:/home/o/.m2/repository/org/jetbrains/kotlin/kotlin-maven-allopen/2.1.20/kotlin-maven-allopen-2.1.20.jar
[ERROR] urls[2] = file:/home/o/.m2/repository/org/jetbrains/kotlin/kotlin-allopen-compiler-plugin/2.1.20/kotlin-allopen-compiler-plugin-2.1.20.jar
[ERROR] urls[3] = file:/home/o/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-annotations/3.7.0/maven-plugin-annotations-3.7.0.jar
[ERROR] urls[4] = file:/home/o/.m2/repository/org/jetbrains/kotlin/kotlin-compiler/2.1.20/kotlin-compiler-2.1.20.jar
[ERROR] urls[5] = file:/home/o/.m2/repository/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar
[ERROR] urls[6] = file:/home/o/.m2/repository/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.jar
[ERROR] urls[7] = file:/home/o/.m2/repository/org/jetbrains/annotations/23.0.0/annotations-23.0.0.jar
[ERROR] urls[8] = file:/home/o/.m2/repository/org/jetbrains/kotlin/kotlin-scripting-compiler/2.1.20/kotlin-scripting-compiler-2.1.20.jar
[ERROR] urls[9] = file:/home/o/.m2/repository/org/jetbrains/kotlin/kotlin-scripting-common/2.1.20/kotlin-scripting-common-2.1.20.jar
[ERROR] urls[10] = file:/home/o/.m2/repository/org/jetbrains/kotlin/kotlin-scripting-jvm/2.1.20/kotlin-scripting-jvm-2.1.20.jar
[ERROR] urls[11] = file:/home/o/.m2/repository/org/jetbrains/kotlin/kotlin-scripting-compiler-impl/2.1.20/kotlin-scripting-compiler-impl-2.1.20.jar
[ERROR] urls[12] = file:/home/o/.m2/repository/org/jline/jline/3.24.1/jline-3.24.1.jar
[ERROR] urls[13] = file:/home/o/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/3.10.1/maven-compiler-plugin-3.10.1.jar
[ERROR] urls[14] = file:/home/o/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.3.4/maven-shared-utils-3.3.4.jar
[ERROR] urls[15] = file:/home/o/.m2/repository/commons-io/commons-io/2.6/commons-io-2.6.jar
[ERROR] urls[16] = file:/home/o/.m2/repository/org/apache/maven/shared/maven-shared-incremental/1.1/maven-shared-incremental-1.1.jar
[ERROR] urls[17] = file:/home/o/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[18] = file:/home/o/.m2/repository/org/codehaus/plexus/plexus-java/1.1.1/plexus-java-1.1.1.jar
[ERROR] urls[19] = file:/home/o/.m2/repository/org/ow2/asm/asm/9.2/asm-9.2.jar
[ERROR] urls[20] = file:/home/o/.m2/repository/com/thoughtworks/qdox/qdox/2.0.1/qdox-2.0.1.jar
[ERROR] urls[21] = file:/home/o/.m2/repository/org/codehaus/plexus/plexus-compiler-api/2.11.1/plexus-compiler-api-2.11.1.jar
[ERROR] urls[22] = file:/home/o/.m2/repository/org/codehaus/plexus/plexus-utils/3.4.1/plexus-utils-3.4.1.jar
[ERROR] urls[23] = file:/home/o/.m2/repository/org/codehaus/plexus/plexus-compiler-manager/2.11.1/plexus-compiler-manager-2.11.1.jar
[ERROR] urls[24] = file:/home/o/.m2/repository/org/codehaus/plexus/plexus-compiler-javac/2.11.1/plexus-compiler-javac-2.11.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[project>com.nexxiot.confighub:config-hub-http-server:1.0.0-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]
[ERROR] 

The compiler setup is:

            <plugin>
                <groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-maven-plugin</artifactId><version>${kotlin.version}</version>
                <executions>
                    <execution><id>compile</id><goals><goal>compile</goal></goals></execution>
                    <execution><id>test-compile</id><goals><goal>test-compile</goal></goals></execution></executions>
                <dependencies>
                    <dependency><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-maven-allopen</artifactId><version>${kotlin.version}</version></dependency>
                </dependencies>
                <configuration>
                    <javaParameters>true</javaParameters>
                    <jvmTarget>21</jvmTarget>
                    <compilerPlugins>
                        <plugin>all-open</plugin>
                    </compilerPlugins>
                    <pluginOptions>
                        <option>all-open:annotation=jakarta.ws.rs.Path</option>
                        <option>all-open:annotation=jakarta.enterprise.context.ApplicationScoped</option>
                        <option>all-open:annotation=jakarta.persistence.Entity</option>
                        <option>all-open:annotation=io.quarkus.test.junit.QuarkusTest</option>
                    </pluginOptions>
                </configuration>
            </plugin>

There's also the Quarkus plugin, which may be significant. This is in the parent pom:

            <plugin>
                <groupId>io.quarkus.platform</groupId><artifactId>quarkus-maven-plugin</artifactId><version>${quarkus.platform.version}</version><extensions>true</extensions>
                <executions>
                    <execution>
                        <goals>
                            <goal>build</goal>
                            <goal>generate-code</goal>
                            <goal>generate-code-tests</goal>
                            <goal>native-image-agent</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
<?xml version="1.0" encoding="UTF-8"?>
<extensions>
    <extension>
        <groupId>io.takari.polyglot</groupId>
        <artifactId>polyglot-kotlin</artifactId>
        <version>0.4.6</version>
    </extension>
</extensions>

Is this something I can fix / workaround on my side?

Or is it a design issue when polyglot Kotlin can't work with extensions which employ Kotlin?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions