Skip to content

Commit a061f74

Browse files
committed
增加将proguard输出到Maven插件日志的功能
1 parent 004ad9f commit a061f74

File tree

2 files changed

+64
-3
lines changed

2 files changed

+64
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.github.wvengen.maven.proguard;
2+
3+
import org.apache.maven.plugin.logging.Log;
4+
import org.apache.tools.ant.DefaultLogger;
5+
import org.apache.tools.ant.Project;
6+
7+
import java.io.PrintStream;
8+
9+
public class MavenloggingBinder extends DefaultLogger {
10+
11+
private final Log log;
12+
13+
public MavenloggingBinder(Log log) {
14+
this.log = log;
15+
}
16+
17+
@Override
18+
public void setOutputPrintStream(PrintStream output) {
19+
20+
}
21+
22+
@Override
23+
public void setErrorPrintStream(PrintStream err) {
24+
25+
}
26+
27+
@Override
28+
protected void printMessage(String message, PrintStream stream, int priority) {
29+
switch (priority) {
30+
case Project.MSG_ERR: {
31+
log.error(message);
32+
break;
33+
}
34+
case Project.MSG_VERBOSE:
35+
case Project.MSG_DEBUG: {
36+
log.debug(message);
37+
break;
38+
}
39+
case Project.MSG_WARN: {
40+
log.warn(message);
41+
break;
42+
}
43+
default: {
44+
log.info(message);
45+
break;
46+
}
47+
}
48+
}
49+
}

src/main/java/com/github/wvengen/maven/proguard/ProGuardMojo.java

+15-3
Original file line numberDiff line numberDiff line change
@@ -389,6 +389,13 @@ public class ProGuardMojo extends AbstractMojo {
389389
*/
390390
private boolean silent;
391391

392+
/**
393+
* bind proguard output to maven plugin logging.
394+
*
395+
* @parameter default-value="false"
396+
*/
397+
private boolean bindToMavenLogging;
398+
392399
private Log log;
393400

394401
/**
@@ -1003,9 +1010,14 @@ private void proguardMain(Collection<File> proguardJars, List<String> argsList,
10031010
antProject.setName(mojo.mavenProject.getName());
10041011
antProject.init();
10051012

1006-
DefaultLogger antLogger = new DefaultLogger();
1007-
antLogger.setOutputPrintStream(System.out);
1008-
antLogger.setErrorPrintStream(System.err);
1013+
DefaultLogger antLogger;
1014+
if (bindToMavenLogging) {
1015+
antLogger = new MavenloggingBinder(mojo.log);
1016+
} else {
1017+
antLogger = new DefaultLogger();
1018+
antLogger.setOutputPrintStream(System.out);
1019+
antLogger.setErrorPrintStream(System.err);
1020+
}
10091021
int logLevel = mojo.log.isDebugEnabled() ? Project.MSG_DEBUG : Project.MSG_INFO;
10101022
antLogger.setMessageOutputLevel(silent ? Project.MSG_ERR : logLevel);
10111023

0 commit comments

Comments
 (0)