Fix search for topDirectory when using -f / --file

This commit is contained in:
Guillaume Nodet 2023-06-30 15:27:58 +02:00
parent e39142b77a
commit 08e996bb28
1 changed files with 14 additions and 2 deletions

View File

@ -333,7 +333,7 @@ public class MavenCli {
for (String arg : cliRequest.args) {
if (isAltFile) {
// this is the argument following -f/--file
Path path = topDirectory.resolve(arg);
Path path = topDirectory.resolve(stripLeadingAndTrailingQuotes(arg));
if (Files.isDirectory(path)) {
topDirectory = path;
} else if (Files.isRegularFile(path)) {
@ -351,7 +351,7 @@ public class MavenCli {
break;
} else {
// Check if this is the -f/--file option
isAltFile = arg.equals(String.valueOf(CLIManager.ALTERNATE_POM_FILE)) || arg.equals("file");
isAltFile = arg.equals("-f") || arg.equals("--file");
}
}
topDirectory = getCanonicalPath(topDirectory);
@ -1616,6 +1616,18 @@ public class MavenCli {
return interpolator;
}
private static String stripLeadingAndTrailingQuotes(String str) {
final int length = str.length();
if (length > 1
&& str.startsWith("\"")
&& str.endsWith("\"")
&& str.substring(1, length - 1).indexOf('"') == -1) {
str = str.substring(1, length - 1);
}
return str;
}
private static Path getCanonicalPath(Path path) {
try {
return path.toRealPath();