【发布时间】:2018-07-03 01:21:33
【问题描述】:
我正在开发从 Java 转移到 Kotlin 的库。由于项目仍然混合使用这两种语言,我使用 kotlin-maven-plugin 和 maven-compiler-plugin,如 https://kotlinlang.org/docs/reference/using-maven.html 中所述。 Kotlin 版本是 1.2.10。
我需要在库中创建一个注释,它将用于其他项目。注释是标准的 Java 注释,我可以构建我的库。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface EnableSomeBehavior {
}
当我在另一个项目(Java 项目)中导入库时,我可以看到注释。我的 IDE(IntelliJ)中的自动完成实际上向我提出了注释.. 但由于某种原因,无法导入它:当我验证自动完成选择时,我收到编译错误“无法解析符号 'EnableSomeBehavior '"。
这很令人费解..我已经重建了几次(以防罐子损坏),但它没有改变任何东西。
我怀疑这与 Kotlin/Java 库的编译和/或打包方式有关。Java 注释在 jar 中,我可以看到它,并且在某种程度上,IDE 也可以看到它,因为它正在提议它。但不知何故,它无法使用它。这不是 IDE 问题,因为即使从命令行使用 Maven 编译也会失败并出现相同的错误。
知道问题可能是什么吗?
谢谢
【问题讨论】: