0
点赞
收藏
分享

微信扫一扫

gradle文件中引入其他gradle文件

曾宝月 2022-02-27 阅读 75


背景:

安卓项目中,gradle文件也逐渐变得臃肿起来,需要分开管理,否则一大堆在一起,就很难维护了。

解决方案:

采用**apply from: ‘xx.gradle’**这样的语句就可以引入其他gradle文件了。

Demo(集成aspectj):

1.aspectj.gradle

import org.aspectj.bridge.IMessage
import org.aspectj.bridge.MessageHandler
import org.aspectj.tools.ajc.Main

final def log = project.logger
final def variants = project.android.applicationVariants

buildscript {

repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
jcenter()
}
dependencies {
classpath 'org.aspectj:aspectjtools:1.9.1'
}
}

variants.all { variant ->
if (!variant.buildType.isDebuggable()) {
log.debug("Skipping non-debuggable build type '${variant.buildType.name}'.")
return;
}

JavaCompile javaCompile = variant.javaCompile
javaCompile.doLast {
String[] args = ["-showWeaveInfo",
"-1.8",
"-inpath", javaCompile.destinationDir.toString(),
"-aspectpath", javaCompile.classpath.asPath,
"-d", javaCompile.destinationDir.toString(),
"-classpath", javaCompile.classpath.asPath,
"-bootclasspath", project.android.bootClasspath.join(File.pathSeparator)]
log.debug "ajc args: " + Arrays.toString(args)

MessageHandler handler = new MessageHandler(true);
new Main().run(args, handler);
for (IMessage message : handler.getMessages(null, true)) {
switch (message.getKind()) {
case IMessage.ABORT:
case IMessage.ERROR:
case IMessage.FAIL:
log.error message.message, message.thrown
break;
case IMessage.WARNING:
log.warn message.message, message.thrown
break;
case IMessage.INFO:
log.info message.message, message.thrown
break;
case IMessage.DEBUG:
log.debug message.message, message.thrown
break;
}
}
}
}
dependencies {
implementation 'org.aspectj:aspectjrt:1.9.1'
}

2.app的gradle文件头部引入

apply from: 'aspectj.gradle'

关注头条号,第一时间获取最新文章:

gradle文件中引入其他gradle文件_java



举报

相关推荐

build.gradle文件

js文件引入其他js文件

0 条评论