1+ buildscript {
2+
3+ repositories {
4+ jcenter()
5+ }
6+ dependencies {
7+ classpath ' org.aspectj:aspectjtools:1.8.13'
8+ }
9+ }
10+
11+ import org.aspectj.bridge.IMessage
12+ import org.aspectj.bridge.MessageHandler
13+ import org.aspectj.tools.ajc.Main
14+
15+ final def log = project. logger
16+ final def variants = project. android. applicationVariants
17+
18+ variants. all { variant ->
19+
20+ JavaCompile javaCompile = variant. javaCompile
21+ javaCompile. doLast {
22+ String [] args = [" -showWeaveInfo" ,
23+ " -1.5" ,
24+ " -inpath" , javaCompile. destinationDir. toString(),
25+ " -aspectpath" , javaCompile. classpath. asPath,
26+ " -d" , javaCompile. destinationDir. toString(),
27+ " -classpath" , javaCompile. classpath. asPath,
28+ " -bootclasspath" , project. android. bootClasspath. join(File . pathSeparator)]
29+ log. debug " ajc args: " + Arrays . toString(args)
30+
31+ MessageHandler handler = new MessageHandler (true );
32+ new Main (). run(args, handler);
33+ for (IMessage message : handler. getMessages(null , true )) {
34+ switch (message. getKind()) {
35+ case IMessage . ABORT :
36+ case IMessage . ERROR :
37+ case IMessage . FAIL :
38+ log. error message. message, message. thrown
39+ break ;
40+ case IMessage . WARNING :
41+ log. warn message. message, message. thrown
42+ break ;
43+ case IMessage . INFO :
44+ log. info message. message, message. thrown
45+ break ;
46+ case IMessage . DEBUG :
47+ log. debug message. message, message. thrown
48+ break ;
49+ }
50+ }
51+ }
52+ }
53+
54+
55+
56+ dependencies {
57+ compile ' org.aspectj:aspectjrt:1.8.13'
58+ }
0 commit comments