java - Maven 与 Kotlin 1.2 : A required class was missing kotlin/reflect/KDeclarationContainer

标签 java maven kotlin

我尝试将 Kotlin 与 Maven 一起使用,所以我遵循了 documentation

我在 pom.xml 中有这个配置文件

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <kotlin.version>1.2.10</kotlin.version>
</properties>

<build>
    <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
    <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
    <plugins>
        <plugin>
            <artifactId>kotlin-maven-plugin</artifactId>
            <groupId>org.jetbrains.kotlin</groupId>
            <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>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib-jdk8</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-reflect</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
</dependencies>

源文件夹是 src/main/kotlinsrc/test/kotlin

当我做 mvn clean install我得到了这个错误

[ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.2.10:compile (compile) on project kotlin-starter: Execution compile of goal org.jetbrains.kotlin:kotlin-maven-plugin:1.2.10:compile failed: A required class was missing while executing org.jetbrains.kotlin:kotlin-maven-plugin:1.2.10:compile: kotlin/reflect/KDeclarationContainer
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.jetbrains.kotlin:kotlin-maven-plugin:1.2.10
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
...

我也试过使用 kotlin-stdlib而不是 kotlin-stdlib-jdk8但我得到了同样的错误。当我打开库时,我看到类 KDeclarationContainer在包裹中 kotlin.reflect所以我不明白为什么会出现此错误?

编辑:当我将 kotlin 版本更改为 <kotlin.version>1.1.61</kotlin.version> 时, 一切都很完美...

最佳答案

我有一个与 kotlin-maven-plugin/1.2.20 非常相似的问题,在我从我的本地 maven 存储库中删除 org/jetbrains 并重新运行构建后,该问题消失了。我只能认为某些东西已损坏或丢失。

关于java - Maven 与 Kotlin 1.2 : A required class was missing kotlin/reflect/KDeclarationContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47889454/

相关文章:

Java 字符串构造函数优化

从方法返回类型派生的 Java 泛型类型推断

maven - 如何在不创建 scm 标签的情况下暂存 Maven 版本?

maven - 如何在 eclipse 中使用已安装的 Maven 版本

unit-testing - 如何为 MockWebServer 设置默认响应?

kotlin - Kotlin 中具有不同数量类型参数的两个函数

java - 为什么 Maven 3.3 不包含 'javax.inject' 但 Maven 3.2 包含?

java - 由 : org. hibernate.boot.registry.classloading.spi.ClassLoadingException 引起:无法加载类 [Employee]

java - MissingResourceException,除非资源存在

android - 找不到符号返回 DaggerApplication_HiltComponents_SingletonC.builder()