[ http://jira.codehaus.org/browse/MNG-4451?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julien HENRY updated MNG-4451: ------------------------------ Attachment: MNG-4451.zip I have tested with Maven 3.0-beta-1 with the given sample project. {code} pom.xml submoduleA |-pom.xml \-submoduleAA \-pom.xml {code} The build is still failing when started from a clean repository from the root pom. But when building each level one after one from the parent and using -N option it works but with the following warning : {code} [submoduleA]$ mvn clean install -N [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for org.apache.maven.test-MNG-4451:submoduleA:pom:1.0.0-SNAPSHOT [WARNING] 'groupId' contains an expression but should be a constant. @ ${project.parent.groupId}.${project.parent.artifactId}:submoduleA:1.0.0-SNAPSHOT, /home/julien/Programmation/maven/MNG-4451/submoduleA/pom.xml [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build. [WARNING] [WARNING] For this reason, future Maven versions might no longer support building such malformed projects. [WARNING] {code} So I suggest the answer is simply that it is not a good practice to have an expression in groupId. > Parametized <groupId/> declarations fail in two level deep multi-module > project > ------------------------------------------------------------------------------- > > Key: MNG-4451 > URL: http://jira.codehaus.org/browse/MNG-4451 > Project: Maven 2 & 3 > Issue Type: Bug > Components: Bootstrap & Build > Affects Versions: 2.2.1 > Environment: Windows XP, JDK 1.6.0_16 > Reporter: J. Michael McGarr > Attachments: MNG-4451.zip > > > We utilized the appfuse 2.x multi-module project setup where the modules of > the project declare their own <groupId/> value as: > {quote} > <groupId>$[pom.parent.groupId].$[pom.parent.artifactId]</groupId> > {quote} > (note: replaced the curly braces with brackets due to a wiki error) > When you add a second level of modules, this approach does not seem to work > in Maven. The second level child module, which declares it parent to be a > first level child module. It appears that the parameter declaration in the > first-level module is ambiguous or is resolving to value as seen by the > second-level module. This can be seen below in the output of the error the > Maven reactor provides. > I was able to work around this error by changing the parametized groupId > declaration in the first-level module pom and making it explicit. If there > is something wrong with this approach or another parametized setting I need > to use, please let me know. > {quote} > C:\DEV\workspace\parent>mvn clean install > [INFO] Scanning for projects... > [INFO] > ------------------------------------------------------------------------ > [ERROR] FATAL ERROR > [INFO] > ------------------------------------------------------------------------ > [INFO] Error building POM (may not be this project's POM). > Project ID: com.maventest.parent.first-level:second-level:jar:null > Reason: Cannot find parent: com.maventest.parent:first-level for project: > com.maventest.parent.first-level:second-level:jar:null for project > com.maventest.parent.first-level:second-level:jar:null > [INFO] > ------------------------------------------------------------------------ > [INFO] Trace > org.apache.maven.reactor.MavenExecutionException: Cannot find parent: > com.maventest.parent:first-level for project: > com.maventest.parent.first-level:second-level:jar:null for project > com.maventest.parent.first-level:second-level:jar:null > at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:404) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:272) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) > at > org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) > at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) > at > org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) > at org.codehaus.classworlds.Launcher.main(Launcher.java:375) > Caused by: org.apache.maven.project.ProjectBuildingException: Cannot find > parent: com.maventest.parent:first-level for project: > com.maventest.parent.first-level:second-level:jar:null for project > com.maventest.parent.first-level:second-level:jar:null > at > org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1396) > at > org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:823) > at > org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:508) > at > org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200) > at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:604) > at > org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:487) > at > org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:560) > at > org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:560) > at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:391) > ... 12 more > Caused by: org.apache.maven.project.ProjectBuildingException: POM > 'com.maventest.parent:first-level' not found in repository: Unable to > download the artifact from any repository > com.maventest.parent:first-level:pom:1.0-SNAPSHOT > from the specified remote repositories: > central (http://repo1.maven.org/maven2) > for project com.maventest.parent:first-level > at > org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:605) > at > org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1392) > ... 20 more > Caused by: org.apache.maven.artifact.resolver.ArtifactNotFoundException: > Unable to download the artifact from any repository > com.maventest.parent:first-level:pom:1.0-SNAPSHOT > from the specified remote repositories: > central (http://repo1.maven.org/maven2) > at > org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:228) > at > org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:90) > at > org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:558) > ... 21 more > Caused by: org.apache.maven.wagon.ResourceDoesNotExistException: Unable to > download the artifact from any repository > at > org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:404) > at > org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:216) > ... 23 more > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: < 1 second > [INFO] Finished at: Tue Nov 17 09:57:27 EST 2009 > [INFO] Final Memory: 2M/4M > [INFO] > ------------------------------------------------------------------------ > {quote} -- 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