2010-06-04 6 views
4

5 가지 목표를 제공 할 Maven 플러그인을 개발 중입니다. 개별적으로 목표 1-4를 실행하거나 goal5를 실행하면 목표 1-4가 차례로 실행됩니다. 저는 다른 Maven 목표를 재사용 (즉, 호출) 할 방법을 찾고 있었지만 아직 발견하지 못했습니다.maven plugin goals

물론 goalx 대리인이 ClassX에 대부분의 기능을 제공 할 수 있습니다. 그리고 goal5가 호출 될 때 Class1 ... Class4에 위임합니다. 그러나 이는 여전히 특정 양의 코드 중복을 지정하는 것과 관련됩니다 각 목표의 구성을 읽고 검증합니다.

한 목표를 다른 목표 내에서 재사용 할 수있는 방법이 있습니까?

감사합니다, 돈 물론

+0

이 솔루션이 도움이됩니까? http://stackoverflow.com/questions/1393691/how-to-bind-a-plugin-goal-to-another-plugin-goal – JoseK

+0

@josek - 아니, 제 질문은 프로그래밍 방식으로 목표를 프로그래밍 방식으로 호출하는 방법에 관한 것입니다. 다른 플러그인 목표의 소스 코드 –

답변

0

, 나는 그것의 대부분 ClassX에 goalX 위임이 단지 수는 목표 5가 ... CLASS4을 CLASS1하기, 위임을 호출하지만,이 여전히 포함되어 다음 때, 기능의 각 목표의 구성을 지정하고, 읽고, 검증하는 측면에서 일정한 양의 코드 복제.

그러면 목표 유효성 확인을 위해 다른 클래스에 공통된 클래스를 제공하지 않는 이유는 무엇입니까? 여기에서 가장 쉬운 방법은 코드에서 하나의 목표로 다른 목표를 호출하는 것입니다.

+0

하지만 내 문제는 다른 목표에서 호출하는 방법을 모르겠다는 것입니다. –

+0

내가 말하는 것은 code5를 처리하는 코드 내에서 goal1을 처리하는 코드를 호출해야한다는 것입니다. –

1

다른 목표 내에서 하나의 목표를 재사용 할 수있는 방법이 있습니까?

AFAIK, Maven API는 Maven 사용자가 나쁜 것으로 간주되는 플러그인 간의 강력한 결합을 유도하는 방법을 홍보하기를 원하지 않기 때문에이 기능을 제공하지 않습니다. 그 배경은 Re: calling plugin in another plugin?에 있습니다.

즉,이 blog post은 모조를 인스턴스화하고 리플렉션을 사용하여 실행을 호출하기 전에 해당 필드를 설정하는 방법을 보여줍니다.

mojo-executor 라이브러리를 확인할 수도 있습니다.

그러나 언급 된 스레드를 반드시 읽어야합니다. 중요하다고 생각합니다.

0

"Maven mindset"은 구성이 Mojo 구현자가 아닌 pom.xml 작성자의 책임임을 나타냅니다. 모든 구성 등을 공통 기본 클래스로 이동하면 결국이 메커니즘을 우회합니다.

당신이 원하는 것은 서브 프로젝트입니다. 목표 1-4는 각각 자신의 프로젝트에 있거나 목표 5를 실행할 수 있습니다. 목표 5는 모두 실행합니다. 아마도 이것은 도움이 될까요? : http://i-proving.com/space/Technologies/Maven/Maven+Recipes/Split+Your+Project+Into+Sub-Projects

소스 트리가 프로젝트 라인을 따라 멋지게 분할되지 않으면 프로필을 사용하여 뭔가를 할 수 있습니다 (시도하지는 않았지만). 허용 된 답변은 여기 How to bind a plugin goal to another plugin goal에서 확인하십시오.