You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/07/28 11:26:51 UTC

svn commit: r798466 - /maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java

Author: bentmann
Date: Tue Jul 28 09:26:51 2009
New Revision: 798466

URL: http://svn.apache.org/viewvc?rev=798466&view=rev
Log:
[MNG-4262] Make-like reactor mode fails to find projects selected by relative paths with leading dots

Modified:
    maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java

Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=798466&r1=798465&r2=798466&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Tue Jul 28 09:26:51 2009
@@ -438,29 +438,37 @@
 
     private boolean isMatchingProject( MavenProject project, String selector, File reactorDirectory )
     {
-        String id = ':' + project.getArtifactId();
-
-        if ( id.equals( selector ) )
+        // [groupId]:artifactId
+        if ( selector.indexOf( ':' ) >= 0 )
         {
-            return true;
-        }
+            String id = ':' + project.getArtifactId();
 
-        id = project.getGroupId() + id;
-
-        if ( id.equals( selector ) )
-        {
-            return true;
+            if ( id.equals( selector ) )
+            {
+                return true;
+            }
+
+            id = project.getGroupId() + id;
+
+            if ( id.equals( selector ) )
+            {
+                return true;
+            }
         }
 
-        File selectedProject = new File( reactorDirectory, selector );
-
-        if ( selectedProject.isFile() )
-        {
-            return selectedProject.equals( project.getFile() );
-        }
-        else if ( selectedProject.isDirectory() )
+        // relative path, e.g. "sub", "../sub" or "."
+        else
         {
-            return selectedProject.equals( project.getBasedir() );
+            File selectedProject = new File( new File( reactorDirectory, selector ).toURI().normalize() );
+
+            if ( selectedProject.isFile() )
+            {
+                return selectedProject.equals( project.getFile() );
+            }
+            else if ( selectedProject.isDirectory() )
+            {
+                return selectedProject.equals( project.getBasedir() );
+            }
         }
 
         return false;