2012-06-12 3 views
5

Есть ли способ выполнить условное выполнение фрагмента в pom.xml? мое требование, чтобы скопировать файл/папку для развертывания структуры на основе переменной, определенной в pom.xml ...Maven - Как выполнить условное выполнение

например:

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

Не знаю, как я могу добиться этого!

Любые указатели будут высоко оценены.

Спасибо, SR

ответ

4

Возможно, вам придется использовать Maven AntRun Plugin для этого.

В общем, в POM нет условных выражений. Единственное, что похоже на это: build profiles, которые могут быть активированы в некоторых определенных условиях, однако они, вероятно, не вписываются в ваш текущий случай.

И, в конце, мое предложение здесь. Мы не знаем точно, что у вас есть, и даже не имеют реального фрагмента кода, однако по моему опыту очень необычно использовать такие хакинские вещи в Maven. Для меня это пахнет некоторыми проблемами с пониманием Maven, структурой проекта или тому подобным. Возможно, я ошибаюсь и, возможно, ваш случай действительно нуждается в этом, но рассмотрите другие варианты, чтобы вписаться в подход и соглашения по умолчанию в Maven.

+0

Спасибо Michal. попробует профили ... Хорошо, вот случай, который я пытаюсь выполнить. Я определил плагины для jspc, cobertura и findbugs с моим проектом. каждый раз, когда я запускаю, все эти плагины выполняются; что я сделал, я определил переменную, называемую фазой в pom.xml (возможные значения null/package) .. когда это значение установлено в null ... эти плагины не выполняются. В этом случае я хочу изменить свой военный плагин, чтобы пропустить логику копирования (отчет о копировании). – user1450759

+0

ОК, поэтому кажется, что здесь будут работать профили. –

+0

Вот почему Gradle намного лучше - с этой точной проблемой. – JamesC

2

Ну, вы можете использовать Maven's profiles, чтобы сделать это.

Или вы можете взглянуть на Maven's Ant Tasks.