You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "David Biesack (JIRA)" <ji...@codehaus.org> on 2011/12/06 19:18:42 UTC

[jira] Commented: (MNG-2363) does not work in a multi-project build

    [ https://jira.codehaus.org/browse/MNG-2363?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=285044#comment-285044 ] 

David Biesack commented on MNG-2363:
------------------------------------

Can someone identify which released version (of what plugin) this is fixed?
I still see this bug (however, I do not have a multi-project config); just a pom.xml and a parent pom.
In my <profiles> in the project pom.xml I have 

  <profile>
            <id>cobertura.off</id>
            <activation>
                <file> 
                    <exists>${basedir}/cobertura.off</exists>
                </file>
            </activation>
            <properties>
              <skip.cobertura>true</skip.cobertura>
            </properties>
        </profile>
        <profile>
            <id>cobertura.on</id>
            <activation>
                <file>
                    <missing>${basedir}/cobertura.off</missing>
                </file>
            </activation>
            <properties>
              <skip.cobertura>false</skip.cobertura>
            </properties>
        </profile>

but even if the file cobertura.off exists (same dir as pom.xml), mvn help:active-profiles shows that cobertura.on is active and cobertura.off is not active.

This does work if I use <exists>cobertura.off</exists> and  <missing>cobertura.off</missing> respectively

Thus the doc at http://maven.apache.org/pom.html#Activation is (still) wrong as it shows use of ${basedir}/

I'm using apache-maven-2.2.1

> <profile><activation><file><exists/> does not work in a multi-project build
> ---------------------------------------------------------------------------
>
>                 Key: MNG-2363
>                 URL: https://jira.codehaus.org/browse/MNG-2363
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Profiles
>            Reporter: David Boden
>            Assignee: Benjamin Bentmann
>            Priority: Critical
>             Fix For: 3.0-alpha-3
>
>         Attachments: DefaultMavenProjectBuilder.java, DefaultMavenProjectBuilder.java, DefaultMavenProjectBuilder.java.diff, problemactivation.zip, screenshot-1.jpg
>
>
> I would expect each subproject to have the profile turned on or off depending on whether ${basedir}/file-to-check-for exists.
> Instead, during a multi-project build the profile is either on or off depending on whether the file exists relative to the *aggregator pom*. The decision is made once.
> Variable substitution doesn't work, so I can't explicitly use <exists>${basedir}/file-to-check-for</exists> or any variation on this theme to workaround the bug.
> Some background to my particular problem. I have 10 modules to build. Some of them are GUI modules and contain a file called plugin.xml in the subproject directory. I want to package these up specially and sign them, ready for deployment to webstart. The other modules are shared and server code and I don't want these packaged in the same way. So, I've got a dependency in my *parent* pom file which activates a profile called "guibundle" if a plugin.xml file exists in the subproject directory.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira