SonarQube 规则在启动时被禁用
SonarQube rules getting disabled on startup
我最初在我的开发机器上设置了一个 Sonar 服务器,但后来在官方 Linux 机器上创建了一个服务器,目的是停止使用开发机器。在此过渡期间,我可能同时拥有两台服务器 运行(指向同一个 Sonar 数据库)。
现在我看到一些奇怪的行为。本地服务器运行良好,我可以 运行 Sonar 在其上构建。然而,当我启动 Linux 服务器时,它无法加载任何规则,我在启动日志中看到以下内容,并且规则页面显示 'no coding rules.'
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1181
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1151
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1150
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1153
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1148
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S2236
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1147
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1149
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S2232
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1143
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S2235
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1145
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:ClassCyclomaticComplexity
当我查看规则 table 时,我注意到所有规则的状态都是 'REMOVED.' 现在,当我停止 Linux 服务器并启动另一个时,table突然有270条奇数规则,状态为'READY'。
所以看起来 Linux 服务器启动时,它停用了所有可用的规则,但其他服务器能够再次在此 table 中获取它们。
我找不到关于此行为的任何文档,但似乎是两个服务器之间的冲突。谁能帮我激活 Linux 服务器的规则?
很可能您在这两个实例之间没有使用同一组插件。请检查两台服务器上 $SQ_HOME/extensions/plugins
目录的内容,如果它们不相同,您将不得不使用更新中心安装缺少的插件。
另请注意,不支持与两个服务器实例共享同一个数据库,这可能会导致极其奇怪的行为。
我最初在我的开发机器上设置了一个 Sonar 服务器,但后来在官方 Linux 机器上创建了一个服务器,目的是停止使用开发机器。在此过渡期间,我可能同时拥有两台服务器 运行(指向同一个 Sonar 数据库)。
现在我看到一些奇怪的行为。本地服务器运行良好,我可以 运行 Sonar 在其上构建。然而,当我启动 Linux 服务器时,它无法加载任何规则,我在启动日志中看到以下内容,并且规则页面显示 'no coding rules.'
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1181
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1151
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1150
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1153
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1148
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S2236
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1147
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1149
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S2232
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1143
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S2235
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:S1145
2015.06.18 09:32:10 INFO web[o.s.s.r.RegisterRules] Disable rule squid:ClassCyclomaticComplexity
当我查看规则 table 时,我注意到所有规则的状态都是 'REMOVED.' 现在,当我停止 Linux 服务器并启动另一个时,table突然有270条奇数规则,状态为'READY'。
所以看起来 Linux 服务器启动时,它停用了所有可用的规则,但其他服务器能够再次在此 table 中获取它们。
我找不到关于此行为的任何文档,但似乎是两个服务器之间的冲突。谁能帮我激活 Linux 服务器的规则?
很可能您在这两个实例之间没有使用同一组插件。请检查两台服务器上 $SQ_HOME/extensions/plugins
目录的内容,如果它们不相同,您将不得不使用更新中心安装缺少的插件。
另请注意,不支持与两个服务器实例共享同一个数据库,这可能会导致极其奇怪的行为。