2013-03-26 2 views
0

사용자가 관리 시스템에 기능을 추가 할 수 있도록하는 플러그인을 허용하는 시스템이 있습니다. 플러그인은 기본적으로 특정 형식 (예 :이 dir의 파일 x, 해당 dir의 y)의 zip 파일입니다. 현재 maven-assembly-plugin 플러그인을 사용하여 zip을 만듭니다.메이븐 플러그인을 통해 의존성 주입하기

문제는 동기화하고 따라서 내가 그렇게 사용자 정의 포장 유형을 만들기 위해 노력했습니다 올바른 assembly.xml에게

을 필요로하기 때문에 다른 사람들이 플러그인을 만들 수 있도록 내 모든 플러그인을 유지하기 위해 어색하다는 것이다 개발자는 플러그인과 같이 할 수 있습니다 :

<groupId>com.example</groupId> 
<artifactId>example</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>plugin</packaging> //not a standard type 

이 대부분 작동하고 있지만, 추한 것은 이제 각 플러그인은 항상 핵심 시스템의 특정 API가에 달려 있다는 것입니다. 따라서 기본적으로 모두 동일한 종속성을 갖습니다.

mojo가 mojo 사용자에게 의존성을 주입 할 수 있습니까?이 말을 보인다는 할 수 없습니다 : http://maven.40175.n5.nabble.com/How-to-inject-dependencies-from-a-mojo-td83025.html

+0

당신이 언급 한 스레드의 답을 읽었습니까? – khmarbaise

+0

@khmarbaise 네,하지만 그건 5 년 전이었습니다. 그 이후로 무슨 일이 일어 났는지 누가 알 겠어. – mlathe

+1

나는 아주 명백하고 간단한 해결책을 발견했습니다. 종속성을 포함하는 "pom"프로젝트를 만들고 개발자가 그 pom을 종속성으로 포함 시키도록 요청합니다. 그것은 한 곳에서 의존성을 중앙 집중화 할 수 있기 때문에 내 문제를 훌륭히 해결할 수 있으며 원할 경우 각 "플러그인"은 핵심 API 의존성에 전이 할 수 있습니다. 쉬워요. – mlathe

답변

0

의견 답변 : 나는 아주 분명하고 간단한 솔루션을 통해 온

. 종속성을 포함하는 "pom" 프로젝트를 만들고 개발자에게 이 해당 pom을 종속성으로 포함하도록 요청합니다. 그게 내하나의 장소에서 의존성을 중앙 집중화 할 수 있기 때문에 내 문제를 멋지게 해결하고 각각의 "플러그인"은 이 원하는 경우 전이 적으로 핵심 API 의존성을 얻을 수 있습니다. 쉬운 Peasy. - 3 월 27 일 (일) 22시 12 분

+1

나는 똑같이하려고 노력하고있다. 한 가지 질문 : "개발자가 그 pom을 종속물로 포함시켜달라고 요청하면"POM을 종속성으로 어디에 포함시켜야합니까? (1) 플러그인의 POM 또는 (2) POM에서 플러그인을 사용 중입니까? –

관련 문제