【发布时间】:2018-08-06 18:22:28
【问题描述】:
我目前正在尝试编写我正在处理的自定义 lint 检查。我创建了一个单独的 java 项目并将其作为 jar 包含在内。
我的问题是,无论如何,在分析我的代码库时似乎没有运行我的自定义检查。
我已经包含了一个注册表
class MyIssueRegistry : IssueRegistry() {
override val issues: List<Issue>
get() = listOf(MyIssues.ISSUE_PATTERN)
}
还有一个检测器
class MyIssueDetector : Detector(), Detector.UastScanner {
override fun getApplicableUastTypes() = listOf(UClass::class.java)
override fun createUastHandler(context: JavaContext) =
MyIssueDetector(context)
class MyIssueDetector(private val context: JavaContext) : UElementHandler() {
override fun visitClass(node: UClass) {
context.report(MyIssues.ISSUE_PATTERN, context.getNameLocation(node), "This is just a test")
}
}
}
我还在我的 java 项目的 gradle 中添加了 attributes("Lint-Registry-v2": "com.pathto.lint.MyIssueRegistry"),并将它作为 lintChecks project(":lint") 包含在我的应用程序 gradle 中
AFAIK 这个主题 - 我的代码每次读取类时都应该抛出警告,但没有运行 lint 检查。有没有我遗漏的步骤?
【问题讨论】:
-
能否附上
MyIssues.ISSUE_PATTERN的来源?
标签: android kotlin android-gradle-plugin lint