You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org> on 2010/12/08 23:45:01 UTC

[jira] Closed: (MNG-4930) List of active profiles defined in ~/.m2/settings.xml gets lost when parsing dependency POMs

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

Benjamin Bentmann closed MNG-4930.
----------------------------------

    Resolution: Duplicate
      Assignee: Benjamin Bentmann

> List of active profiles defined in ~/.m2/settings.xml gets lost when parsing dependency POMs
> --------------------------------------------------------------------------------------------
>
>                 Key: MNG-4930
>                 URL: http://jira.codehaus.org/browse/MNG-4930
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Dependencies, Profiles, Reactor and workspace, Settings
>    Affects Versions: 2.2.1, 3.0, 3.0.1, 3.0.2
>         Environment: Windows, Mac OS X, quite possibly all others
>            Reporter: Tibor Varga
>            Assignee: Benjamin Bentmann
>         Attachments: maven-bug.patch, root.zip, settings.xml
>
>
> Scenario:
> * {{root}} project with two sub projects, {{test-api}} and {{test-impl}}
> * {{~/.m2/settings.xml}} defines a property in a profile, {{xxx}}.
> * {{root/pom.xml}} defines a property, {{yyy}}, and a profile that defines another property, {{zzz}}.
> * {{test-impl}} depends on {{test-api}}
> * {{test-api}} declares a dependency that uses {{xxx}} as the {{groupId}}, {{yyy}} as the {{artifactId}} and {{zzz}} as the {{type}}.
> * Compile the {{root}} project with Maven ({{mvn compile}}), making sure the profiles are active, one way or another.
> When {{test-api}} is compiled, all goes well. When {{test-impl}} is compiled, Maven warns of the following:
> {noformat}
> [WARNING] The POM for test:test-api:jar:1.0-SNAPSHOT is invalid, transitive dependencies (if any) will not be available,
> enable debug logging for more details
> {noformat}
> Turning on debuggig ({{mvn -X compile}}) prints:
> {noformat}
> [WARNING] The POM for test:test-api:jar:1.0-SNAPSHOT is invalid, transitive dependencies (if any) will not be available:
> 1 problem was encountered while building the effective model for test:test-api:1.0-SNAPSHOT
> [ERROR] 'dependencies.dependency.groupId' for ${xxx}:junit:jar with value '${xxx}' does not match a valid id pattern. @ 
> {noformat}
> Apparently, property interpolation failed for {{xxx}} but not for {{yyy}} or {{zzz}}, and {{xxx}} fails only when it is referenced in a _dependency_ of the current project. When it is referenced in the current project, it gets properly interpolated.
> What actually happens is that the list of active profiles defined outside the reactor gets lost when resolving dependencies of the current project. They are available when the current project's POM is parsed but not when parsing the POM of the current project's dependencies.
> Now, although this is just a warning in my sample scenario, the consequences in real life are more serious: "no transitive dependencies" means, e.g., modules not compiling that should, or JAR artifacts missing from a WAR artifact, etc., unless the user manually duplicates all the transitive dependencies missed by Maven, in the project that did not compile, or missed a few JAR files from its WAR artifact.
> Attached is a sample multi-module project as described above, a {{settings.xml}} file required for the project to compile and a patch that shows how the problem _could_ be eliminated on the maven-3 trunk ({{http://svn.apache.org/repos/asf/maven/maven-3/trunk}}).
> The attached sample will give no warning prior to Maven 3.0 but if {{test-impl}} were to actually require {{test-api}}'s dependencies to compile, the problem would surface also with Maven 2.2.1 and possibly earlier.
> I don't think the attached patch is an elegant solution but it has the quality of touching very few files and having little or no side effect other than fixing the problem outlined above. In short, please, make a better fix.

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