我们有一个包含很多依赖项的项目。他们中的许多人还带来了各种各样的日志框架。 这会在编写新类时导致混淆,因为IDE自动完成建议类似Logger或LoggerFactory的10个不同的导入。
为了最大限度地减少混淆并整合项目结构,我只想允许使用slf4j Loggers并在开发人员使用例如log4j Logger。
问题:是否有maven插件允许指定禁用的类,并且在检测到此类的使用时会破坏构建? 如果没有,是否存在至少允许在这种情况下报告问题的SonarQube规则?
答案 0 :(得分:3)
Architectural constraints should be followed规则模板可能就是您想要的。它允许您禁止访问某些包(例如**。slf4j *。**)。
在打破构建方面,当前版本的服务器(5.2)中SonarQube无法提供,但5.1版本中应该return soon。所以,让我们说你是支持打破构建的服务器版本。您可以做的是从Architectural Constraint模板创建规则,并在配置文件中为其指定Blocker严重性。然后设置一个在新Blocker上失败的质量门,你就完成了。