【发布时间】:2023-04-02 03:55:02
【问题描述】:
部署自定义规则(如https://github.com/SonarSource/sonar-java/blob/master/java-checks/src/main/java/org/sonar/java/checks/UselessImportCheck.java)后,当我启动 SonarQube 4.2 时,在声纳启动期间抛出以下异常:
Caused by: java.lang.ClassNotFoundException: com.sonar.sslr.api.AstAndTokenVisitor
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) ~[plexus-classworlds-2.2.3.jar:na]
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) ~[plexus-classworlds-2.2.3.jar:na]
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) ~[plexus-classworlds-2.2.3.jar:na]
... 44 common frames omitted
上面提到的类应该在 sslr-core-1.19.2.jar 中找到,我在位置 sonarqube-4.2/web/deploy/plugins/squidjava/META-INF/lib/sslr-core- 1.19.2.jar
我是否遗漏了一些步骤来增强默认声纳库? 目前安装的插件有(sonarqube-4.2/extensions/plugins):
- sonarqube-4.2/extensions/plugins/sonar-checkstyle-plugin-2.1.jar
- sonarqube-4.2/extensions/plugins/sonar-web-plugin-2.1.jar
- sonarqube-4.2/extensions/plugins/sonar-jacoco-plugin-2.2.1.jar
- sonarqube-4.2/extensions/plugins/sonar-java-plugin-2.2.1.jar
- sonarqube-4.2/extensions/plugins/sonar-surefire-plugin-2.2.1.jar
- sonarqube-4.2/extensions/plugins/sonar-pmd-plugin-2.2.jar
- sonarqube-4.2/extensions/plugins/sonar-findbugs-plugin-2.2.1.jar
- sonarqube-4.2/extensions/plugins/sonar-squid-java-plugin-2.2.1.jar
我应该怎么做才能防止上面提到的异常(除了取消部署提到的自定义插件)?
是否应该将必要的库直接捆绑到自定义插件中?我希望声纳能够捆绑此类库。
【问题讨论】: