I am looking for a way to mixin POM fragments into POMs. Note that this idea is beyond parent pom inheritance because all projects inherit from a corporate parent pom. The problem that I am running into is that the corporate parent pom is turning into an "everything but the kitchen sink" POM and I'd like to dissect it into POM fragments relevant for individual modules.
For example, I would like to have mixins for:
- Java projects (that include static code analysis plugins, javadoc, etc.)
- JPA projects (that include DDL generation)
- Flex projects (that include flexmojos, asdoc, etc.)
- Scala projects (that include the maven-scala-compiler plugin, scaladoc, etc.)
Hopefully, you get the idea. Without the ability to factor pom logic, we are left with two symptoms:
- copy/paste duplication
- complex "it does it all" parent poms (which slow down builds because more plugins are loaded even though they might not do anything material)
Another idea is that the mixins could be parameterized, so that the ultimate pom can be customized based on the parameters (like tokens).
I recall reading about Mixins coming in Maven 3.1, but could not find any such issue to watch, so am creating one.