I need to modify the maven build for a large project to skip certain steps during typical development builds (i.e. don’t build the *-source.jar files). I’ve searched for “conditional execution” for maven, but haven’t found anything.
A dev profile sounds like the intuitive way to do this – but I don’t know how intuitive maven is. The docs for profiles show how to set different properties (i.e. database connection parameters) for different profiles. I suppose I could set a property and then test if that property is set in the maven-source-plugin – executions – execution tag.
Is this the right way to do conditional execution in maven?
What’s the “right” way to do this in maven?
You’re thinking about it a bit backwards: have the profile enable the behaviour, not disable it. This is just what profiles are best at, and is exactly your case: you only want the steps to be run in certain circumstances. So you might have something like:
And in fact there’s an example just like this on the maven-source-plugin usage page. When you need to generates your artifact, use mvn -P source-jars (or whatever). That’s it! If you only need to do this at release time, the release plugin even offers a way to define the profiles to use right in the release plugin configuration.