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

Benjamin Bentmann closed MNG-5035.
----------------------------------

    Resolution: Not A Bug

For a little more conistency across the platforms, both forms of slashes are 
treated as directory separators in our smallish Java app and I have yet to hear 
a very good reason that demands the use of backslashes as ordinary filenames 
(I'm sorry but "Unix supports it" is not a good reason). Jesse no offense but I 
will repeat myself, Maven works as intended (btw, your proposed patch doesn't 
help as it yields the very platform-specific behavior mentioned in MNG-4464 
that is to be avoided).

Let me close with this example from another not uncommon build tool:
{code:xml}
<project default="test">
  <property name="dir.name" value="test"/>
  <target name="test">
    <mkdir dir="${dir.name}"/>
  </target>
</project>
{code}
{noformat}
bentmann@ubuntu:~/shared/ant$ ant -Ddir.name=foo\\baz
Buildfile: /home/bentmann/shared/ant/build.xml

test:
    [mkdir] Created dir: /home/bentmann/shared/ant/foo/baz

BUILD SUCCESSFUL
Total time: 0 seconds
{noformat}

> \ -> / on Unix for java.io.File-typed mojo param
> ------------------------------------------------
>
>                 Key: MNG-5035
>                 URL: http://jira.codehaus.org/browse/MNG-5035
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Plugin API
>    Affects Versions: 3.0.3
>         Environment: Ubuntu 10.04, JDK 6
>            Reporter: Jesse Glick
>            Assignee: Benjamin Bentmann
>
> I created a file {{/tmp/a\b/c}} (note backslash). I created a quickstart app 
> with
> {noformat}
>     public static void main( String[] args )
>     {
>         System.out.println( System.getProperty("user.dir") );
>         System.out.println(Arrays.toString(new File("").listFiles()));
>     }
> {noformat}
> and then run it with
> {noformat}
> mvn -Dexec.workingdir=/tmp/a\\b "-Dexec.args=-classpath %classpath ....App" 
> -Dexec.executable=.../java process-classes 
> org.codehaus.mojo:exec-maven-plugin:1.2:exec -X
> {noformat}
> I see
> {noformat}
> [DEBUG] Configuring mojo 'org.codehaus.mojo:exec-maven-plugin:1.2:exec' with 
> basic configurator -->
> [DEBUG]   (f) workingDirectory = /tmp/a/b
> [DEBUG] Making working directory '/tmp/a/b'.
> /tmp/a/b
> null
> {noformat}
> where I expected to see
> {noformat}
> [DEBUG] Configuring mojo 'org.codehaus.mojo:exec-maven-plugin:1.2:exec' with 
> basic configurator -->
> [DEBUG]   (f) workingDirectory = /tmp/a\b
> /tmp/a\b
> [/tmp/a\b/c]
> {noformat}
> I believe the guilty code is in 
> {{org.codehaus.plexus.component.configurator.converters.basic.FileConverter}}:
> {noformat}
> new File( str.replace( '\\', File.separatorChar ).replace( '/', 
> File.separatorChar ) )
> {noformat}
> should probably replace only / with \ and only on Windows. Not sure what 
> compatibility regressions there might be, if some POM written by a Windows 
> developer uses \ as the separator character for relative paths.

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

        

Reply via email to