【发布时间】:2019-12-16 04:20:14
【问题描述】:
我正在为 Java11 实现一个模块,并希望使用 JSR250 中的注释(javax.annotation.PostConstruct 和 javax.annotation.PreDestroy)。
我已经从以下位置更改了相应的依赖项:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
到这里:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
那个工件javax.annotation-api-1.3.2.jar 包含在META-INF/MANIFEST.MF 这一行:
Automatic-Module-Name: java.annotation
因此,我尝试将其添加到我的 module-info.java 文件中:
requires java.annotation;
但是,我收到此导入错误:
import javax.annotation.PostConstruct;
错误信息是:
The type javax.annotation.PostConstruct is not accessible
我已经研究了以下相关问题,但仍然无法解决我的问题:
- I can't use @PostConstruct and @PostDestroy with Java 11
-
Intellij: how to add java.annotation module for javax.annotation.PostConstruct(请注意,我使用的是带有 JDK11 的 Eclipse,并且不包含模块
java.xml.ws.annotation)。
【问题讨论】:
-
错误是来自 Eclipse 编译器还是 Maven?
-
我无法在 Eclipse 2019-06 (4.12) 中重现此问题。你用的是哪个版本?
-
是的,Eclipse 2019-06 中出现错误。是否已经有可用的修复程序?
-
似乎 Eclipse 2019-06 中的 Java 模块支持相当有问题。因此,如果您的模块中有一些编译错误,那么您还会收到其他幻像错误作为副作用。
标签: java eclipse maven java-11 java-module