You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "John Casey (JIRA)" <ji...@codehaus.org> on 2008/07/10 05:54:27 UTC

[jira] Updated: (MNG-3640) CLI cannot deactivate a profile that's activated in POM via

     [ http://jira.codehaus.org/browse/MNG-3640?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Casey updated MNG-3640:
----------------------------

    Fix Version/s: 2.0.11

> CLI cannot deactivate a profile that's activated in POM via <activeByDefault>
> -----------------------------------------------------------------------------
>
>                 Key: MNG-3640
>                 URL: http://jira.codehaus.org/browse/MNG-3640
>             Project: Maven 2
>          Issue Type: Bug
>          Components: Profiles
>    Affects Versions: 2.0.9
>            Reporter: Kohsuke Kawaguchi
>             Fix For: 2.0.11
>
>
> Consider the following POM:
> {noformat}
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>test</groupId>
>   <artifactId>test</artifactId>
>   <packaging>jar</packaging>
>   <version>1.0-SNAPSHOT</version>
>   <name>test</name>
>   <url>http://maven.apache.org</url>
>   <dependencies>
>     <dependency>
>       <groupId>junit</groupId>
>       <artifactId>junit</artifactId>
>       <version>3.8.1</version>
>       <scope>test</scope>
>     </dependency>
>   </dependencies>
>   <profiles>
>     <profile>
>       <id>yuck</id>
>       <activation>
>         <activeByDefault>true</activeByDefault>
>       </activation>
>       <build>
>         <plugins>
>           <plugin>
>             <groupId>no-such-plugin</groupId>
>             <artifactId>just-to-cause-error</artifactId>
>           </plugin>
>         </plugins>
>       </build>
>     </profile>
>   </profiles>
> </project>
> {noformat}
> I'd like to deactivate the "yuck" profile that kicks in by default. I cannot do this even if I run "mvn -P -yuck".
> This is because the DefaultProfileManager.getActiveProfiles() is implemented as follows:
> {noformat}
>     public List getActiveProfiles()
>         throws ProfileActivationException
>     {
>         List activeFromPom = new ArrayList();
>         List activeExternal = new ArrayList();
>         for ( Iterator it = profilesById.entrySet().iterator(); it.hasNext(); )
>         {
>             Map.Entry entry = (Entry) it.next();
>             String profileId = (String) entry.getKey();
>             Profile profile = (Profile) entry.getValue();
>             boolean shouldAdd = false;
>             if ( activatedIds.contains( profileId ) )
>             {
>                 shouldAdd = true;
>             }
>             else if ( !deactivatedIds.contains( profileId ) && isActive( profile ) )
>             {
>                 shouldAdd = true;
>             }
>             if ( shouldAdd )
>             {
>                 if ( "pom".equals( profile.getSource() ) )
>                 {
>                     activeFromPom.add( profile );
>                 }
>                 else
>                 {
>                     activeExternal.add( profile );
>                 }
>             }
>         }
>         if ( activeFromPom.isEmpty() )
>         {
>             for ( Iterator it = defaultIds.iterator(); it.hasNext(); )
>             {
>                 String profileId = (String) it.next();
>                 Profile profile = (Profile) profilesById.get( profileId );
>                 activeFromPom.add( profile );
>             }
>         }
>         List allActive = new ArrayList( activeFromPom.size() + activeExternal.size() );
>         allActive.addAll( activeExternal );
>         allActive.addAll( activeFromPom );
>         return allActive;
>     }
> {noformat}
> ... and therefore the {{defaultIds}} set (which contains "yuck") is considered active, even if {{deactivatedIds}} contain them. The fix should be obvious by now.

-- 
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