I'd prefer to switch to Path, and in this case use Path.resolve
You should add that to the test.
I agree that a path starting with "/" should be interpreted as an absolute 
path, and AFAIK the warning is there already for ages so I don't mind changing 
the behavior.

thanks,
Robert
On 1-1-2020 23:26:00, Mark Struberg <strub...@yahoo.de.invalid> wrote:
Hi lords and ladies!

I try to get my head around the ticket MASSEMBLY-775.
It is related to MASSEMBLY-746 and MASSEMBLY-665.

The problem is basically that a reference to /somedirectory is interpreted as 
absolute path on *nix and as relative path on Win*.

And sometimes we have code of the form

File destDir = new File(dest);
if (! destDir.isAbsolute()) {
destDir = new File(basedir destDir);
}

And thus we treat e.g. /src/test/my.txt as relative to ${project.basedir} on 
Windows but as an absolute path in OSX and Linux for example. But Maven 
projects should by default be perfectly portable on different operating systems.

It get's a bit more complicated when also taking mingw and cygwin into 
consideration.

I wrote a tiny class and tested it on multiple systems.

public class Test {
public static void main(String[] args) {
java.lang.System.out.println("path: " + new 
java.io.File(args[0]).getAbsolutePath());
}
}

Feeding /test as parameter gives the following values:
OSX: /test
Linux: /test
Windows CMD: c:\test
Windows mingw: c:\opt\GIT\test
Windows Powershell: c\test

I don't have cygwin at hand. Anyone?

It looks like using / as detector for an absolute file *in addition* to 
File#isAbsolute() would be the most porbable way to handle it?
At least if we otherwise concat it to our basedir like we did in 
maven-assembly-plugin.

Wdyt?

LieGrue,
strub



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to