You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Embedded.customJavac() only extracts Unix bash scripts (custom-javac.sh / java-forwarder.sh), breaking MavenBuildTool on Windows #1068
MavenBuildTool instruments Maven builds by extracting a wrapper javac via Embedded.customJavac(...) and passing -Dmaven.compiler.executable=${javac.executable} and -Dmaven.compiler.fork=true to Maven.
On Windows, even after working around #991 (mvnw.cmd / mvn.cmd resolution in MavenBuildTool.kt), Maven compilation immediately fails when maven-compiler-plugin tries to fork the compiler, because Embedded.customJavac() unconditionally extracts POSIX bash scripts (scip-java/custom-javac.sh and scip-java/java-forwarder.sh) to bin/javac and bin/java and calls Files.setPosixFilePermissions(...).
Files.setPosixFilePermissions(javac, permissions) in Embedded.customJavac() throws java.lang.UnsupportedOperationException on Windows NTFS filesystems because DefaultFileSystemProvider does not support the posix file attribute view.
-Dmaven.compiler.executable=<tmp>\bin\javac points to an extensionless #!/usr/bin/env bash script (custom-javac.sh). When maven-compiler-plugin forks the compiler on Windows via CreateProcess, it fails with:
CreateProcess error=193, %1 is not a valid Win32 application
On Windows (System.getProperty("os.name").lowercase().contains("win")), generate .cmd wrapper scripts (javac.cmd and java.cmd) in Embedded.customJavac(...) that invoke InjectScipOptions and forward to javac.exe / java.exe, and return bin.resolve("javac.cmd") as CustomJavac.executable.
Activity