我正在尝试实现一个自定义的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。
提前感谢您的帮助。
答案 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
不是此软件包的一部分,因此在运行时无法找到,因此遇到了例外。