2012-06-12 4 views
5

pom.xml에서 snippet의 조건부 실행을 수행하는 방법이 있습니까?Maven - 조건부 실행을 수행하는 방법

<if> 
    < equals arg1="package" arg2="package"/> 
     < then> 
       .... 
      < /then> 
    < /if> 

나는이 있는지 달성 할 수 없음 방법 : 내 요구 사항은 ... pom.xml 파일에 정의 된 변수에 따라 구조를 배포 할 파일/디렉토리를 복사

예입니다!

모든 포인터는 높이 평가 될 것입니다.

감사합니다, 그것을위한 Maven AntRun Plugin을 사용하는

답변

4

은 아마 당신이 필요합니다 SR.

일반적으로 POM에는 조건부 표현식이 없습니다. 어떤 식 으로든 이것과 비슷한 유일한 것은 build profiles이며 특정 조건에서 활성화 될 수 있습니다. 그러나 현재 상황에 맞지 않을 수도 있습니다.

마지막으로, 여기에 제 제안이 있습니다. 우리는 당신의 사건이 무엇인지에 대해 정확히 알지 못하며 실제 코드 조각조차 가지고 있지 않습니다. 그러나 제 경험으로 볼 때 Maven에서 그런 해킹 된 것을 사용하는 것은 정말 이례적입니다. 나에게 그것은 메이븐 (Maven) 이해, 프로젝트 구조 또는 그런 것들에 대한 문제와 같은 냄새가 난다. 내가 틀렸을 수도 있고 당신의 경우가 실제로 필요할 수도 있지만 Maven의 기본 접근법과 관습에 맞게 다른 옵션을 고려해보십시오.

+0

감사합니다. Michal. 프로필을 시도합니다 ... 좋아, 내가 수행하려고하는 경우입니다. 내 프로젝트와 jspc, cobertura 및 findbugs에 대한 플러그인을 정의했습니다. 매번이 모든 플러그인을 실행 시키면 실행됩니다. 내가 한 것은 pom.xml (가능한 값 null/package)의 phase라는 변수를 정의한 것입니다.이 값을 null로 설정하면이 플러그인이 실행되지 않습니다. 이 경우, 복제 로직을 건너 뛰도록 war-plugin을 변경하려고합니다 (복사 논리를보고합니다). – user1450759

+0

OK, 프로필이 여기에서 작동하는 것 같습니다. –

+0

이것이 바로 Gradle이 훨씬 더 나은 이유입니다.이 정확한 문제가 있습니다. – JamesC

2

음, Maven의 profiles을 사용하면 그렇게 할 수 있습니다.

또는 Maven의 Ant Tasks을 살펴볼 수 있습니다.

관련 문제