2016-09-14 30 views
2

我想在我的eclipse項目中使用依賴注入。我在依賴管理pom中包含了org.eclipse.e4.core.di的maven依賴項。無法在eclipse中使用@Inject 4

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

而且,在我使用依賴注入與編譯範圍的插件中。

<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

回答

2

要使用@Inject必須包括在插件中的MANIFEST.MFRequire-BundleImport-Packagejavax.inject

要在MANIFEST.MF編輯器中執行此操作,請轉到依賴項選項卡,並將javax.inject添加到所需的插件或導入的包部分。

當你這樣做,你應該能夠在你的代碼中使用

import javax.inject.Inject; 

注意:除非您使用ContextInjectionFactory來創建類,否則只會注入從e4 Application.e4xmi中的條目創建的類。

+0

謝謝,它的工作原理。我在我的pom中包含了javax.inject依賴項,並運行了osgi命令,這與你在這裏建議的相同。所以,** javax.inject **不包含在我在原文中提到的任何插件中? –

+0

不,它位於單獨的javax.inject插件中。各種注入註解類都分佈在許多插件中。 –