Skip to content

Commit 8b216a0

Browse files
committed
Write raw javac output to a log file
1 parent 3fa2999 commit 8b216a0

File tree

1 file changed

+13
-0
lines changed
  • plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac

1 file changed

+13
-0
lines changed

plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java

+13
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,13 @@
5656
import java.net.MalformedURLException;
5757
import java.net.URL;
5858
import java.net.URLClassLoader;
59+
import java.nio.charset.StandardCharsets;
60+
import java.nio.file.Files;
61+
import java.nio.file.Path;
62+
import java.text.SimpleDateFormat;
5963
import java.util.ArrayList;
6064
import java.util.Arrays;
65+
import java.util.Date;
6166
import java.util.Deque;
6267
import java.util.HashSet;
6368
import java.util.List;
@@ -643,6 +648,14 @@ protected CompilerResult compileOutOfProcess(CompilerConfiguration config, Strin
643648
getLog().debug("Compiler output:{}{}", EOL, out.getOutput());
644649
}
645650

651+
Path logsDir = config.getBuildDirectory().toPath().resolve("compiler-logs");
652+
if (!Files.exists(logsDir)) {
653+
Files.createDirectories(logsDir);
654+
}
655+
SimpleDateFormat dateFormat = new SimpleDateFormat("'javac'_yyyy-MM-dd'T'HH_mm_ss.'log'");
656+
String logFileName = dateFormat.format(new Date());
657+
Files.write(logsDir.resolve(logFileName), out.getOutput().getBytes(StandardCharsets.UTF_8));
658+
646659
messages = parseModernStream(returnCode, new BufferedReader(new StringReader(out.getOutput())));
647660
} catch (CommandLineException | IOException e) {
648661
throw new CompilerException("Error while executing the external compiler.", e);

0 commit comments

Comments
 (0)