部署我自己的Java规则实现时,NoClassDefFoundError BytecodeVisitor

时间:2015-09-15 14:06:19

标签: sonarqube

我在Java中创建了一个新的规则实现。 POM包括以下内容:

    <dependency>
        <groupId>org.codehaus.sonar</groupId>
        <artifactId>sonar-plugin-api</artifactId>
        <version>4.5</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.codehaus.sonar-plugins.java</groupId>
        <artifactId>sonar-java-plugin</artifactId>
        <type>sonar-plugin</type>
        <version>3.1</version>
        <scope>provided</scope>
    </dependency>

新规则扩展

org.sonar.java.bytecode.visitor.BytecodeVisitor 

IntelliJ IDEA解析为

org.codehaus.sonar-plugins.java:java-squid:3.1

但是,在将插件工件部署到全新的Sonar 5.1.2安装后,我得到了

java.lang.NoClassDefFoundError: org/sonar/java/bytecode/visitor/BytecodeVisitor

要部署,我将plugin.jar放入“plugins / downloads”文件夹并尝试启动Sonar,

有人可以确认我正在使用针对Sonar 5.1.2的插件的正确依赖项吗?

我发现我的插件没有META-INF / lib /,而一些较大的插件确实包含该位置的JAR文件。

非常感谢任何帮助。

谢谢,罗宾。

1 个答案:

答案 0 :(得分:0)

我完全没有了。

我试图将规则部署为插件。

这里描述了正确的结构:

http://docs.sonarqube.org/display/DEV/Developing+Plugins