2014-03-03 3 views
4

나는 Maven 플러그인을 개발하고있다. 더 테스트하기 쉽도록 Guice와 같은 가벼운 의존성 주입 프레임 워크를 사용하여 서비스를 관리하고 싶지만, 응용 프로그램을 내 플러그인과 통합 할 수 없었습니다. 정적 방식으로 의존성 삽입을 수행하면이 작업을 수행 할 수있는 방법이 있습니까?Maven 플러그인의 의존성 삽입

답변

1

Maven은 이미 Plexus라는 내장 IoC 컨테이너를 제공합니다. 당신은 다른 구성 요소

public class MonitorMojo 
    extends AbstractMojo 
{ 

    /** 
    * The website monitor component instance that will be injected 
    * by the Plexus runtime. 
    * @component 
    */ 
    private WebsiteMonitor monitor; 

    public void execute() 
     throws MojoExecutionException, MojoFailureException 
    { 
     // TODO Auto-generated method stub 

    } 

} 

을 포함 당신은 maven plugin dev siteplexus documentation에 대한 자세한 정보를 찾을 수있는 속성

@Parameter(property = "sayhi.greeting", defaultValue = "Hello World!") 
private String greeting; 

를 참조 할 수 있습니다.

+0

Maven 3.1. +는 새로운 종속성 시스템을 가져 왔으며 여전히 plexus API/주석을 지원하지만 maven은 guice/jsr330으로 이동 중이며 http://maven.apache.org/maven-jsr330.html 링크를 확인하십시오. – carlosvin

0

carlosvin의 코멘트 (Maven JSR 330)에서 언급 된 것보다 Maven 플러그인 개발에 더 나은 CDI 지원을 제공하는 또 다른 프레임 워크 (작은 라이브러리)가 있습니다.

이것은 도서관입니다 : Maven CDI Plugin Utils.

DI뿐 아니라 기본적으로 롤백 기능 및 확장 성을 갖춘 워크 플로 기반 처리 모델과 같은 몇 가지 추가 개념을 제공합니다.

곧이 라이브러리에 관한 블로그 게시물을 게시 하겠지만 설명서에는 모든 개념을 설명해야한다고 생각합니다. Btw. 이것은 완전한 기능을 갖춘 Weld SE 컨테이너와 classpath 기반 빈 발견 기능을 갖춘 CDI에서 알려진 DI입니다!