2012-06-12 14 views
5

Czy istnieje sposób wykonania warunkowego wykonania urywka w pom.xml? mój wymogiem jest, aby skopiować plik/katalog do wdrażania struktury oparte na zmiennej zdefiniowanej w pom.xml ...Maven - jak wykonać warunkową egzekucję

np

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

Nie wiem, jak można to osiągnąć!

Wszelkie wskazówki byłyby bardzo cenne.

Dzięki SR

Odpowiedz

4

Prawdopodobnie będziesz musiał użyć Maven AntRun Plugin do tego.

Generalnie nie ma żadnych wyrażeń warunkowych w POM. Jedyną rzeczą podobną do tego są build profiles, które mogą być aktywowane w pewnych określonych warunkach, jednak prawdopodobnie nie pasują one do twojego aktualnego przypadku.

Na koniec moja sugestia tutaj. Nie wiemy dokładnie, o czym jest twoja sprawa, i nie ma nawet prawdziwego fragmentu kodu, jednak z mojego doświadczenia wynika, że ​​używanie takich hakerów w Maven jest naprawdę niezwykłe. Dla mnie pachnie to jakimiś problemami ze zrozumieniem Mavena, strukturą projektu lub podobnymi rzeczami. Mogę się mylić i być może twoja sprawa naprawdę tego potrzebuje, ale rozważ inne opcje, aby dopasować się do domyślnego podejścia i konwencji Maven.

+0

Dzięki Michał. spróbuję profilów ... Ok, oto przypadek, który próbuję wykonać. W moim projekcie zdefiniowałem wtyczki dla jspc, cobertura i findbugs. za każdym razem, gdy uruchamiam, buduję wszystkie te wtyczki; to, co zrobiłem, zdefiniowałem zmienną o nazwie faza w pom.xml (możliwe wartości null/package) .. gdy ta wartość jest ustawiona na null ... te wtyczki nie są wykonywane. W tym przypadku chcę zmienić mój plugin wojny, aby pominąć logikę kopiowania (raportuje logikę kopiowania). – user1450759

+0

OK, więc wygląda na to, że profile działałyby tutaj. –

+0

To dlatego Gradle jest o wiele lepszy - mając ten właśnie problem. – JamesC

Powiązane problemy