Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-2363

<profile><activation><file><exists/> does not work in a multi-project build

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • None
    • 3.0-alpha-3
    • Profiles
    • None

    Description

      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.

      Attachments

        1. screenshot-1.jpg
          50 kB
          David Boden
        2. problemactivation.zip
          2 kB
          David Boden
        3. DefaultMavenProjectBuilder.java.diff
          3 kB
          Jan Labrie
        4. DefaultMavenProjectBuilder.java
          74 kB
          Jan Labrie
        5. DefaultMavenProjectBuilder.java
          74 kB
          Jan Labrie

        Issue Links

          Activity

            People

              bentmann Benjamin Bentmann
              daveboden David Boden
              Votes:
              19 Vote for this issue
              Watchers:
              23 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: