in src/main/java/org/apache/maven/plugin/compiler/DiagnosticLogger.java [114:177]
public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
String message = diagnostic.getMessage(locale);
if (message == null || message.isBlank()) {
return;
}
MessageBuilder record = messageBuilderFactory.builder();
record.a(message);
JavaFileObject source = diagnostic.getSource();
Diagnostic.Kind kind = diagnostic.getKind();
String style;
switch (kind) {
case ERROR:
style = ".error:-bold,f:red";
break;
case MANDATORY_WARNING:
case WARNING:
style = ".warning:-bold,f:yellow";
break;
default:
style = ".info:-bold,f:blue";
if (diagnostic.getLineNumber() == Diagnostic.NOPOS) {
source = null; // Some messages are generic, e.g. "Recompile with -Xlint:deprecation".
}
break;
}
if (source != null) {
record.newline().a(" at ").a(relativize(source.getName()));
long line = diagnostic.getLineNumber();
long column = diagnostic.getColumnNumber();
if (line != Diagnostic.NOPOS || column != Diagnostic.NOPOS) {
record.style(style).a('[');
if (line != Diagnostic.NOPOS) {
record.a(line);
}
if (column != Diagnostic.NOPOS) {
record.a(',').a(column);
}
record.a(']').resetStyle();
}
}
String log = record.toString();
switch (kind) {
case ERROR:
if (firstError == null) {
firstError = message;
}
logger.error(log);
numErrors++;
break;
case MANDATORY_WARNING:
case WARNING:
logger.warn(log);
numWarnings++;
break;
default:
logger.info(log);
break;
}
// Statistics
String code = diagnostic.getCode();
if (code != null) {
codeCount.merge(code, 1, (old, initial) -> old + 1);
}
}