[ https://issues.apache.org/jira/browse/MNG-6000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15765549#comment-15765549 ]
Joerg Schaible commented on MNG-6000: ------------------------------------- This is already possible using file exists. > activeProfiles in pom.xml > ------------------------- > > Key: MNG-6000 > URL: https://issues.apache.org/jira/browse/MNG-6000 > Project: Maven > Issue Type: Improvement > Components: POM, Profiles > Reporter: Fabrizio Lungo > Labels: features, maven > > I would like to see the ability to define {{<activeProfiles>}} in a pom. I > think this would be extremely useful and provide a way for a parent pom to > provide a set of profiles that can be picked and chosen from as per the needs > of the project. > A simple but specific example is where I would like to have a profile from > our corporate parent pom that is activated when a project should build an > executable jar. This profile provides the configuration for the > {{maven-jar-plugin}} (as well as adding some validations and checks) and we > would like to activate this on a per project level. > Initially I tried using properties but activation conditions only look at > system properties (and not pom defined ones) and even using a property in the > {{<activateByDefault>}} tag. As described in MNG-5235 this is because > profiles need to be processed first and using properties from the pom would > create chicken-egg problems and inconsistencies because a profile can then > modify these properties. > If {{<activeProfiles>}} were to be added to pom, this could be read first to > determine if any profiles need to be activated and allow a pom to define > which profiles will be active by default. > Two optional features that could be implemented to supplement this would be: > * Support for {{<activeProfiles>}} inside of a profile for profiles to be > able to recursively enable other profiles (that they may depend on). This > would allow reduction of duplication if two profiles require some shared > preconditions they can then just activate the profile with this shared > configuration and if one or both are activated, the shared configuration > profile will be activated too. This should be fairly easy to implement using > recursive checks and not revisiting any profiles already in an active list > (to avoid cycles - which should be warned about - and unnecessary > re-evaluations) > * Support for disabling profiles (possibly by using > {{<profile>!profile-1</profile>}} syntax. This could have advantages where a > parent pom activates a profile by default and the child wants it disabled by > default although I can see this may cause problems. -- This message was sent by Atlassian JIRA (v6.3.4#6332)