每天记录学习的新知识:项目jar和module编译优先级
发布日期:2021-05-10 05:22:48 浏览次数:17 分类:精选文章

本文共 887 字,大约阅读时间需要 2 分钟。

项目根目录下的build.gradle文件主要配置了Java编译的优先级和自定义编译选项。

在allprojects块中,设置了优先编译顺序,并使得所有编译任务依赖于Android应用库(applib)的编译结果。具体而言:

allprojects {
repositories {
google()
jcenter()
}
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:App/ch_classes.jar')
}
}

这一设置确保了Android应用模块的编译优先于库模块,减少了编译时间,并通过自定义的编译选项加载指定的BOOTCLASSPATH文件。

此外,在项目根目录下,settings.gradle文件导入了依赖关系:

include ':applib'
include ':app'

这意味着Applib和App模块将依赖于这些项目,在本地项目中生效。值得注意的是,项目根目录下Applib模块中的依赖管理可能需要单独配置,特别是在处理完全静态的依赖时,建议在模块级别手动指定。

模块级别的build.gradle文件则集中在配置依赖项和编译选项:

  • 所有依赖项都需要在“implementation”或“compileOnly”中注明,以确保依赖仅在编译或运行时使用。
  • 通过“api"配置可将依赖项暴露给链接的模块,确保其他模块可访问相关的传递依赖。

例如:

dependencies {
implementation 'com.example.lib:jar'
api 'com.example.dto:api'
}

这种方式不仅简化了依赖管理,还确保了模块间的兼容性。在实际应用中,还建议检查传递依赖的latest stable版本,以避免版本冲突。

总体来说,合理配置Gradle项目的依赖管理和编译优先级能够显著提升开发效率,同时确保模块间的稳定衔接。

上一篇:EventBus
下一篇:每天记录学习的新知识:ButterKnife Zelezny 插件

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月20日 20时23分30秒