gpt4 book ai didi

java - Sonarqube - 如何在代码中检查 Logger 或 LoggerFactory

转载 作者:行者123 更新时间:2023-12-02 13:22:52 24 4
gpt4 key购买 nike

我想使用 Java 在 Sonarqube 中构建一个自定义规则,它可以捕获这种情况的发生:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

或代码中的单词LoggerLogFactory。我应该为此使用 visitLiteral() 吗?

最佳答案

您有多种选择来实现这一目标,最简单的一种是按照tutorial中的描述编写扩展org.sonar.plugins.java.api.IssuableSubscriptionVisitor的自定义规则。 (正如@user7790438在你的问题的评论中完美指出的那样......你可能必须调整其中描述的内容,但它为你提供了基础知识),并注册到Tree.Kind.Identifier节点。

然后,一旦访问了所有标识符节点,只需将给定节点转换为org.sonar.plugins.java.api.tree.IdentifierTree,并检索它们的name()。从那里,您可以检查它是否被称为 LoggerLoggerFactory

另一种方法可能是订阅Tree.Kind.IMPORT树并简单地检查合格的标识符。但是使用星号导入会降低效率,并且不允许您找到所有出现的情况。

供您引用,您无法访问文字,因为您最终只会访问该语言的文字(字符串、整数、 double 、 boolean 值等),就像建议的方法名称一样...

关于java - Sonarqube - 如何在代码中检查 Logger 或 LoggerFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43509366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com