java - Maven/Sonar : Enforce usage of slf4j over different logging frameworks

标签 java maven logging sonarqube

我们有一个有很多依赖项的项目。他们中的许多人还带来了各种日志框架。 这会在编写新类时导致困惑,因为 IDE 自动完成建议对类 Logger 或 LoggerFactory 进行 10 种不同的导入。

为了最大程度地减少困惑并巩固项目结构,我希望仅允许使用 slf4j 记录器,并在开发人员使用例如log4j 记录器。

问题:是否有一个 Maven 插件允许指定禁止的类,并在检测到此类类的使用时中断构建? 如果没有,是否有 SonarQube 规则至少允许在这种情况下报告问题?

最佳答案

Architectural constraints should be followed规则模板可能就是您想要的。它允许您禁止访问某些软件包(例如 **.slf4j*.**)。

就破坏构建而言,当前版本的服务器(5.2)中的 SonarQube 不提供该功能,但在 5.1 中可以使用,并且应该 return soon 。假设您使用的服务器版本支持破坏构建。您可以做的是从架构约束模板创建规则,并在您的配置文件中为其指定“阻止程序”严重性。然后设置一个在新的拦截器上失败的质量门,你就完成了。

关于java - Maven/Sonar : Enforce usage of slf4j over different logging frameworks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34130577/

相关文章:

java - Log4J2 AsyncLogger 正在以高并发填满 LMAX disruptor 的环形缓冲区

java - Bukkit 插件已初始化

java - 如何让一个maven仓库不使用代理

java - 使用 TreeItem<Label> 禁用根 JavaFX TreeView<Label> 的子级上的上下文菜单

java - Maven 中的 JAR 依赖

java - IDEA mysql java.lang.ClassNotFoundException : com. mysql.jdbc.Driver 问题

java - 为什么 Tomcat 在 catalina.out 日志文件中将我的日志行加倍?

java - Sikuli 日志记录设置

Java bufferstrategy,图形错误: : Buffers have not been created

java - 如何创建包含不可变对象(immutable对象)的可变数组列表,Java