MASSEMBLY-775 on Win* File#getPath() translates / to \
Thus we have to check \\ for detecting an absolute
(on windows: drive-absolute) path. On *nix File#isAbsolute() works anyway.
Moving to nio Path did not add any benefit, so I left it with File().
diff --git a/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFileUtils.java b/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFileUtils.java
index cbe2713..bfbd89d 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFileUtils.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFileUtils.java
@@ -118,6 +118,8 @@
*/
public static boolean isAbsolutePath( File dir )
{
- return dir != null && ( dir.isAbsolute() || dir.getPath().startsWith( "/" ) );
+ return dir != null
+ && ( dir.isAbsolute()
+ || dir.getPath().startsWith( "\\" ) ); // on Win* platforms
}
}
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
index bc24cb8..3603066 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhaseTest.java
@@ -191,11 +191,6 @@
macCS.expectInterpolators();
final MockAndControlForLogger macLogger = new MockAndControlForLogger( mm );
- if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
- {
- macLogger.logger.error( "OS=Windows and the assembly descriptor contains a *nix-specific "
- + "root-relative reference (starting with slash): /" );
- }
final MockAndControlForArchiver macArchiver = new MockAndControlForArchiver( mm );