我们有一个有很多依赖项的项目。他们中的许多人还带来了各种日志框架。 这会在编写新类时导致困惑,因为 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/