java - 无法在 eclipse 4 中使用@Inject

标签 java eclipse dependency-injection eclipse-rcp rcp

我正在尝试在我的 Eclipse 项目中使用依赖注入(inject)。我在我的依赖项管理 pom 中包含了 org.eclipse.e4.core.di 的 Maven 依赖项。

<dependency>
    <groupId>org.eclipse.e4</groupId>
    <artifactId>org.eclipse.e4.core.di</artifactId>
    <version>1.5.0-SDK-4.5.0</version>
</dependency>

而且,在我使用编译范围的依赖注入(inject)的插件中。

<dependency>
    <groupId>org.eclipse.e4</groupId>
    <artifactId>org.eclipse.e4.core.di</artifactId>
    <version>compile</version>
</dependency>

此后,当我尝试使用注释 @Inject 时,我看到错误,并且也看不到任何导入建议。

我也尝试在 pom 中包含以下内容

<dependency>
    <groupId>javax.annotation</groupId>
    <artifactId>javax.annotation-api</artifactId>
    <version>1.2</version>
</dependency>

是什么导致了这个问题?我正在使用 Java 8。

最佳答案

要使用@Inject,您必须在Require-BundleImport-Package中包含javax.inject插件的 MANIFEST.MF 中的条目。

要在 MANIFEST.MF 编辑器中执行此操作,请转到“依赖项”选项卡并将 javax.inject 添加到“所需插件”或“导入的包”部分。

完成此操作后,您应该能够使用

import javax.inject.Inject;

在您的代码中。

注意:除非您使用 ContextInjectionFactory 来创建类,否则只会注入(inject)从 e4 Application.e4xmi 中的条目创建的类。

关于java - 无法在 eclipse 4 中使用@Inject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491109/

相关文章:

c# - 依赖注入(inject)和工厂

java - Eclipse安装Google云平台插件出错"No such file or directory"

java - 在Eclipse中,为什么非Java文件不出现 "Show In"?

java - 如何在 CQ5 Archetype Maven 项目中引入自动完成功能并使 Eclipse 识别 CQ 类,如 Sling Repository、javax.jcr.Node 等?

asp.net-mvc - TryUpdateModel在ASP.NET MVC 3单元测试中引发NullReferenceException

javascript - AngularJS 中的可选依赖项

java - 如何运行 oracle 客户端服务器教程?

java - Servlet 给出 404 而不是加载适当的页面。控制台在启动 Tomcat 时显示严重错误

java - 确定最短路线的难题

java - Dialogflow v2 Java 客户端库使用 Spring Boot 检测 Intent : No DesignTimeAgent found for project