SonarQube版本< - > SonarJava版本< - >自定义插件

时间:2017-12-13 12:54:29

标签: java sonarqube sonar-plugin

我正在尝试实现一个自定义的SonarQube插件,该插件在Eclipse中的dev机器上也能正常工作,但是一旦我将它部署到我们的SonarQube实例,它就会在运行时使用ClassNotFoundException崩溃。它在运行时无法找到的类是ExpressionsHelper,(据我所知)应该在sonar-java-plugin-***.jar中。

我们的SonarQube实例运行的是6.1版,SonarJava插件安装在4.15.0.12310版本中。

现在我应该在哪个版本中设置pom.xml中的哪个属性,以便我的dev机器上的配置与SonarQube实例上的可用库匹配?我已经尝试将它们设置为sonar.version = 6.1,java.plugin.version = 4.15.0.12310但是我在扫描期间仍然遇到了ClassNotFoundException。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果该类不是以struct list { struct list *next; char* data; }; #define COMPARE(a,b) strcmp((a),(b)) struct list *splitmerge(struct list *org) { struct list *rest ,*this, **pp; if(!org|| !org->next) return org; /* Split off out-of-order nodes*/ rest = NULL; for (this = org; this; ){ struct list* next; if(!this->next)break; next = this->next; if(COMPARE( this->data, next->data) <= 0) { this= next;continue; } /* Cut next out of the chain */ this->next = next->next; next->next = rest; rest = next; } /* At this point, org is guaranteed to be sorted ** rest is not. */ /* Order the trash */ rest = splitmerge(rest); /* Merge with the trash */ this=NULL; for(pp = &this; org && rest; pp = &(*pp)->next ) { if(COMPARE( org->data, rest->data) <= 0) { *pp = org; org=org->next; } else { *pp = rest; rest=rest->next; } } *pp = (org) ? org : rest; return this; } 开头的包的一部分,则不会在运行时找到它。

org.sonar.plugins.java.api不是此软件包的一部分,因此在运行时无法找到,因此遇到了例外。