2016-09-14 8 views
2

이클립스 프로젝트에서 의존성 주입을 사용하려고합니다. 내 종속성 관리에 org.eclipse.e4.core.di에 대한 maven 종속성을 포함 시켰습니다.이클립스에서 @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> 

그런 다음 주석 @ 삽입을 사용하려고하면 오류가 표시되며 가져 오기 제안도 볼 수 없습니다.

나는이 문제의 원인이 무엇 또한 치어

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

에 다음과 같은 시도? 당신이 당신의 플러그인의 MANIFEST.MFRequire-Bundle 또는 Import-Package 항목에 javax.inject을 포함해야 내가 @Inject를 사용하려면 자바 8.

답변

2

을 사용하고 있습니다.

MANIFEST.MF 편집기에서이를 수행하려면 종속성 탭으로 이동하여 필수 플러그인 또는 가져온 패키지 섹션에 javax.inject를 추가하십시오. 당신이 이런 짓을했을 때

당신은 당신의 코드에서

import javax.inject.Inject; 

을 사용할 수 있어야합니다.

참고 : ContextInjectionFactory을 사용하여 클래스를 만들지 않으면 e4 Application.e4xmi의 항목에서 생성 된 클래스 만 주입됩니다.

+0

감사합니다. 작동합니다. 내 pom에 javax.inject 종속성을 포함 시켰고 osgi 명령을 실행했습니다. 이는 여기에서 제안한 것과 동일합니다. 그래서 ** javax.inject **는 원래 게시물에서 언급 한 플러그인에 포함되어 있지 않습니까? –

+0

아니요, 별도의 javax.inject 플러그인에 있습니다. 다양한 주입 주석 클래스는 여러 플러그인에 분산되어 있습니다. –