We have a multi module build with modules using different technologies, like Java and Flex. Is it somehow possible to activate different profiles based on the module that is
With regard to file-based activation, you can try removing ${basedir}. We use it like this:
<activation>
<file>
<missing>target/jboss/conf/jboss-service.xml</missing>
</file>
</activation>
For those like myself reading this question looking for answers, this use case now works in Maven 3.
There is was a bug affecting this feature in early versions of 3 (see http://jira.codehaus.org/browse/MNG-2363) but it works for me correctly using Maven 3.0.4.
After some more research I finally came to the conclusion that this is not possible for two reasons in the current Maven version (2.1.0):
You can set a property in each module that you want to use the profile, and then use "property" activation in your profiles.
In 2.2.1, profiles are inherited but the ${basedir} issue is still there. I'm in the same boat - I need to activate a profile based on the existence of a file in a given project. My child builds run individually just fine (inherited profile activated by local file existance), but if I run the build from the top parent, they fail because the file isn't found.
I dont know if this helps, but I solved a similar problem with the following approach:
activeByDefault=false
. The PluginManagement-Section then contains the configurations for different plugins.activeByDefault=true
This makes the profile active, but still none of the plugins are activated.inherited=true
for each plugin you want to reuse in the children.I hope that helps. Sorry for not including any code snippets, but I hope even so the soutions is understandable.