Maven - How to perform conditional execution
Asked Answered
M

2

8

Is there a way to perform conditional execution of snippet in pom.xml? my requirement is to copy a file/directory to deploy structure based on variable defined in pom.xml...

eg:

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

Not sure how can I achieve this!

Any pointers would be highly appreciated.

Thanks, SR

Mihalco answered 12/6, 2012 at 9:2 Comment(0)
S
4

Probably you'll need to use Maven AntRun Plugin for that.

In general, there's no conditional expressions in POM. The only thing similar somehow to this are build profiles that can be activated on some specified conditions, however they probably don't fit into your current case.

And, at the end, my suggestion here. We don't know exactly what your case is about and don't even have any real code snippet, however from my experience it's really unusual to have to use such hackin' stuff in Maven. For me it smells like some problems with Maven understanding, project structure or stuff like that. I may be wrong and maybe your case really needs that, but consider other options to fit into Maven default approach and conventions instead.

Songstress answered 12/6, 2012 at 9:9 Comment(2)
Thanks Michal. will try profiles... Ok, here is the case I'm trying to perform. I have defined plug-ins for jspc, cobertura and findbugs with my project. everytime I run build all these plugins executed; what I did is, i defined a variable called phase in pom.xml (possible values null/package).. when this value set to null... these plugins are not executed. In this case, I want to alter my war-plugin to skip copy logic (reports copy logic).Mihalco
This is why Gradle is so much better - having this exact problem.Delaunay
T
2

Well, you can use Maven's profiles, to do that.

Or you can take a look at Maven's Ant Tasks.

Telltale answered 12/6, 2012 at 9:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.