Maven
  1. Maven
  2. MNG-3141

Build not working if pom.xml is a symbolic link

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.7
    • Fix Version/s: 2.0.8
    • Component/s: None
    • Labels:
      None
    • Number of attachments :
      1

      Description

      We are running on Ubuntu and our environment is as follows:

      ./pom.xml (is a symbolic link to /baseline/pom.xml)
      ./module/pom.xml (is a symbolic link to /baseline/module/pom.xml)

      If you go into the module directory and run a compile (mvn compile), everything works fine.

      If you try to run a compile from the parent pom, maven does not resolve the basedir correctly when it tries to compile the module. It tries to create the target directory in /baseline/module/target, rather than in the local module directory.

      Everything works as expected in release 2.0.6. Something changed with the symbolic link resolution in 2.0.7 that breaks my builds.

      -Rob

        Issue Links

          Activity

          Hide
          Robert Mohn added a comment -

          I haven't been able to verify this, but from looking at the code, it looks like the following change:

          revision 543362, Fri Jun 1 02:29:37 2007 UTC

          on the file:

          maven-2.0.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java

          is causing the problem.

          Show
          Robert Mohn added a comment - I haven't been able to verify this, but from looking at the code, it looks like the following change: revision 543362, Fri Jun 1 02:29:37 2007 UTC on the file: maven-2.0.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java is causing the problem.
          Hide
          Robert Mohn added a comment -

          This patch, which was done for windows, causes the path to symbolically linked pom.xml files on unix to be incorrect.

          Show
          Robert Mohn added a comment - This patch, which was done for windows, causes the path to symbolically linked pom.xml files on unix to be incorrect.
          Hide
          Robert Mohn added a comment -

          Patch for the issue. The patch checks if the file is a symlink before doing the getCanonicalFile conversion. The 'isSymLink' method was taken from CleanMojo.java – so at some point we should move that method into a utility class.

          Show
          Robert Mohn added a comment - Patch for the issue. The patch checks if the file is a symlink before doing the getCanonicalFile conversion. The 'isSymLink' method was taken from CleanMojo.java – so at some point we should move that method into a utility class.
          Hide
          Brett Porter added a comment -

          I wasn't able to apply your patch, since AFAICT that would simply revert the previous issue (on Windows, it would not canonicalize either do to the check).

          Instead, I used an Os.isFamily check to only canonicalize on Windows.

          Show
          Brett Porter added a comment - I wasn't able to apply your patch, since AFAICT that would simply revert the previous issue (on Windows, it would not canonicalize either do to the check). Instead, I used an Os.isFamily check to only canonicalize on Windows.

            People

            • Assignee:
              Brett Porter
              Reporter:
              Robert Mohn
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: