在多工程下面处理子工程(除app工程之外)时候注解处理器是无法拿到路径参数?

来源:5-5 实战:自动传递路径参数到注解处理器中

彩色的沙漠

2021-03-17

尝试遍历所有的subProject 设置kapt参数也不行,应该是时机不对
project.rootProject.subprojects.eachWithIndex { subProject, int index ->
if (subProject.extensions.findByName(“kapt”) != null) {
subProject.extensions.findByName(“kapt”).arguments {
arg(“ROOT_PROJECT_DIR”, project.rootDir.absolutePath)
}
}
}

写回答

1回答

allenfeng

2021-03-17

可能所选时机中拿到的kapt extension 为空进而导致设置参数失败。可以尝试调整代码执行的时机为所有子工程的配置阶段结束后、执行阶段之前。

1
3
彩色的沙漠
def cl = { project1 -> if (project1.extensions.findByName("kapt") != null) { project1.extensions.findByName("kapt").arguments { arg("ROOT_PROJECT_DIR", project.rootDir.absolutePath) } } } project.rootProject.subprojects.eachWithIndex { subProject, int index -> //配置阶段结束之后 设置kapt if (subProject.name == "app"){ cl(subProject) return } subProject.afterEvaluate { cl(subProject) } }
2021-03-23
共3条回复

Android 应用程序构建实战+原理精讲

深度掌握 Gradle 使用,系统性学习 Android 应用构建知识

450 学习 · 116 问题

查看课程