[
https://jira.codehaus.org/browse/MNG-5102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jason van Zyl updated MNG-5102:
-------------------------------
Component/s: FDPFC
> Mixin POM fragments
> -------------------
>
> Key: MNG-5102
> URL: https://jira.codehaus.org/browse/MNG-5102
> Project: Maven
> Issue Type: Wish
> Components: FDPFC, POM
> Affects Versions: 2.2.1
> Reporter: Anthony Whitford
> Fix For: Issues to be reviewed for 4.x
>
> Attachments: daddy3.zip, maven-tiles.zip
>
>
> 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.)
> * JavaScript projects (that include build plugins like
> maven-yuicompressor-plugin with jslint and compress goals)
> 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)
> Note that a project may include multiple mixins as I could have a project
> that contains Java code, Scala code, and JavaScript.
> 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.
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)