【问题标题】:how to use custom java rule on sonar?如何在声纳上使用自定义 java 规则?
【发布时间】:2016-05-26 15:10:46
【问题描述】:

我在很多客户项目中使用声纳,许多客户需要自定义规则,我一直使用 xpath 为 java 创建规则,但现在为 java 类删除了 xpath。

我正在使用 sonarQube 版本。 4.5.1和java插件版本。 2.9.1

在声纳的文档中:http://docs.sonarqube.org/display/DEV/Custom+Rules+for+Java

我看到 java 的自定义规则至少需要 3.1 版本的插件 java,并且在版本之间进行了更改。 3.0和3.1,需要重写一些类。

我需要知道如何在我的实际配置中使用 java 代码的自定义规则,如果我现在创建自定义规则,我是否会为 java 插件的任何升级重写一些自定义规则?

【问题讨论】:

  • 出于很多原因(请参阅 java 插件的发行说明),您最好使用最新版本的 java 插件(即 3.10 或更高版本)
  • 是的,我知道,但是我有 150 个项目和 1100 个用户,它是一个共享平台,我无法升级任何更新的插件,因为每次升级我都会把它变成一个大网站,我需要进行大量无回归测试,并在开发平台和预产品中以及在产品中安装后对其进行测试,因为您可以看到每次升级都需要 3 个月以上的测试等。我需要解决方案,感谢您的回复
  • 这里是意见问题,但我不认为这些是不升级的好理由:升级会减少错误,增加规则,并允许您更快地开发自定义规则。我们在我们这边测试非回归。我认为走捷径为过时的插件开发自定义规则只会把你带入死胡同。

标签: java xpath plugins sonarqube rule


【解决方案1】:

如果您为 java 插件版本 2.9.1 编写自定义规则,是的,在这种情况下升级到更新版本的插件时您会遇到重大更改(我不能推荐给您足够多的东西)。

我们(Java 插件开发人员)试图将 API 的重大更改保持在最低限度,但从 2.9.1 版开始,它已经发生了。

查看 3.1 文档中的示例可能会让您开始编写自定义规则,但情况会有所不同,您必须弄清楚。

【讨论】:

  • 非常感谢,好的,我明白了,但是在 3.1 版本之后,声纳会在最新版本上更改自定义规则的编码方式,还是会稳定?
  • 我们目前处于插件的 3.10 版本。而且(据我所知)并没有太大变化。我们尽量使事情保持稳定并避免破坏性更改。但为了继续使用 API,我们可能不得不时不时地这样做。
  • 由于很多很多原因,我们现在无法升级 java 插件,因为: 1 - 首先需要将 sonarQube 升级到 4.5.6+ 2 - 我们上个月刚刚更新了 sonarQube,并且这需要很长时间。 3 - 我们在 JAVA 和 .NET 之间共享 Platforme,并且它们之间兼容的最新版本是 4.5.1 4- 我们不能仅仅为了这个功能而升级 platforme Java 和 .net,所以如果你有工作arround 或使 xpath 规则起作用的解决方案将对我们有所帮助。如果没有解决办法,那么我们将不得不升级,但这应该是我们最后的选择
  • Java 插件不再支持 XPath,它不会再回来了。因此没有解决方法。规则将不得不被重写。您现在编写的任何基于 XPath 的规则也必须迁移。
  • 好的,谢谢迈克尔,但正如benzonico 在“我们在我们这边测试非回归”之前所说的那样,您如何解释 xpath 规则适用于 4.0 版但不适用于 4.5.1 版?问题是我在升级后发现了这种功能障碍,因为它没有在任何地方提及...... xpath 不适用于 2.9.1 的 java 插件
【解决方案2】:

我终于找到了如何生成自定义java规则插件,

我创建了一个项目模板,他可以生成自定义的java规则

我在git上发布了项目,大家可以使用,项目的链接是: https://github.com/cecef/sonar-CustomRule-plugin

问候, 优素福

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 2016-12-11
  • 2014-08-25
相关资源
最近更新 更多