[
http://jira.codehaus.org/browse/MNG-935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_109099
]
Stefano Lenzi commented on MNG-935:
-----------------------------------
I think that also the following document is worth noting for the design of a
better dependencies resolution and filtering system:
http://docs.codehaus.org/display/MAVEN/Extending+Maven+2.0+Dependencies
Finally, I think that we should keep into account even the needs of projects
which use maven for building native-code, like maven-nar-plugin. Some
information on such needs are available here:
http://docs.codehaus.org/display/MAVEN/Support+for+other+languages
> Gentoo style pom dependencies
> -----------------------------
>
> Key: MNG-935
> URL: http://jira.codehaus.org/browse/MNG-935
> Project: Maven 2
> Issue Type: Wish
> Components: Dependencies
> Environment: None appropriate
> Reporter: Brian C. Dilley
> Fix For: 2.x
>
>
> I'm a long time Gentoo Linux (http://www.gentoo.org/) user, and i think that
> Maven could adpot some idea's from gentoo's portage
> (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1).
> Gentoo has a concept of "ebuilds" (which can be compared to poms). An ebuild
> is an install script of sorts for installing a particular piece of software.
> An ebuild defines, among other things, what it's dependencies (other ebuilds)
> are. There are two types of dependencies: optional and required. A required
> depency is something that the software needs to be built or run, while an
> optional depency is the exact opposite... it is optional at compile and run
> time. Basically an optional depency is a feature that the piece of sotware
> supports that isn't necessary for it to function.
> There is also something in gentoo called "USE flags". Use flags are a system
> scope set of parameters that determine how ebuilds are built... and which
> features are included or excluded. For instance, "alsa" is a USE flag. If
> your use flags have "alsa" in them then any application that supports Alsa
> (Advanced Linux Sound Architecture) as an optional dependency will be
> compiled with support for alsa. Likewise, if your USE flags contain "-alsa"
> then anything that has optional support for alsa will not be compiled with
> support for alsa. I should also mention that if a particular ebuild requires
> alsa... alsa will be built as well as it (because it requires alsa at
> compile/run time)... but it and anything else that requires it will be the
> only piece of software on the machine that has alsa support. I should also
> note that Gentoo has what is called "profiles". Profiles contain (among
> other things) a default set of USE flags for the general user, so in theory a
> Gentoo user doesn't have to modify their USE flags whatsoever.
> My thinking is that Maven could adopt this. Poms could specify required and
> optional dependencies, and at a project level USE flags could be defined to
> filter what gets included in a project. For instance someone using the Spring
> Framework may not be using Hibernate... in their use flags "-hibernate" could
> be defined so that maven knows not to grab hibernate (and all of it's
> dependencies) just because they want to use the spring MVC framework.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira