[
https://jira.codehaus.org/browse/MNG-4516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=288807#comment-288807
]
Benjamin Haag commented on MNG-4516:
------------------------------------
If this Issue was Issues to be reviewed for 3.x, as it says, what were the
results?
Activation via settings.xml is useless without an OR condition.
And as long as there is an activation used in the settings.xml, it is
impossible to choose the correct profile via -P profile on the commandline ...
Is nobody willing to fix that problem in the official version?
> Contradiction between the documentation and Maven's behavior related to
> profile-activation with multiple criteria
> -----------------------------------------------------------------------------------------------------------------
>
> Key: MNG-4516
> URL: https://jira.codehaus.org/browse/MNG-4516
> Project: Maven 2 & 3
> Issue Type: Bug
> Components: Profiles
> Affects Versions: 2.2.1
> Reporter: Barnabas Bodnar
> Priority: Critical
> Fix For: Issues to be reviewed for 3.x
>
> Attachments: debug_output.txt, example2.zip, output.txt, pom.xml
>
>
> The chapter 5.3.1 of the Maven Complete Reference (edition 0.2.1, Novemeber
> 2009) speaks unambiguously about considering a logical "AND" between more
> activation-conditions of a profile (cit.: "A profile is activated when all
> activation criteria has been satisfied. For example, a profile could list an
> Operating System family of Windows, and a JDK version of 1.4, this profile
> will only be activated when the build is executed on a Windows machine
> running Java 1.4.").
> Suprisingly, Maven's real behavior suggests, that the logical "OR" operator
> is used. The attached demo project contains a profile with two
> activation-criteria: a property and the existence of a file. As the output
> shows (attachement output.txt), the fulfillment of a single criterion is
> enough for activating the profile. Also the corresponding implementation in
> the Maven core expresses the intention to use an "OR" logic
> (maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
> r813685 (branch 2.2.x), line 268):
> for ( Iterator activatorIterator = activators.iterator();
> activatorIterator.hasNext(); )
> {
> ProfileActivator activator = (ProfileActivator) activatorIterator.next();
> if ( activator.canDetermineActivation( profile ) )
> {
> if ( activator.isActive( profile ) )
> {
> return true;
> }
> }
> }
> return false;
> As I'm considering the documentation's variant more reasonable, I'm reporting
> this as a bug instead of a documentation-issue.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira