java - 如何在使用 sonar:sonar 构建 maven 项目时解决插件容器异常?
问题描述
在 sonarqube 7.4 的扩展文件夹中添加自定义插件 jar 后,我正在尝试使用干净的包 sonar:sonar 构建一个示例项目。但是每次它都会给出这个 PluginContainerException。错误在下面共享:
[ERROR] Failed to execute goal
org.sonarsource.scanner.maven:sonar-maven-plugin:3.5.0.1254:sonar
(default-cli) on project testsonar: Execution default-cli of goal
org.sonarsource.scanner.maven:sonar-maven-plugin:3.5.0.1254:sonar
failed: A required class was missing while executing
org.sonarsource.scanner.maven:sonar-maven-plugin:3.5.0.1254:sonar:
org/sonar/java/model/PackageUtils [ERROR]
-----------------------------------------------------
[ERROR] realm = plugin>org.codehaus.mojo:sonar-maven-plugin:3.5.0.1254 [ERROR]
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] =
file:/C:/Users/chakrabok/.m2/repository/org/sonarsource/scanner/maven/sonar-maven-plugin/3.5.0.1254/sonar-maven-plugin-3.5.0.1254.jar
[ERROR] urls[1] =
file:/C:/Users/chakrabok/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar
[ERROR] urls[2] =
file:/C:/Users/chakrabok/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[3] =
file:/C:/Users/chakrabok/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar
[ERROR] urls[4] =
file:/C:/Users/chakrabok/.m2/repository/org/sonarsource/scanner/api/sonar-scanner-api/2.10.0.1189/sonar-scanner-api-2.10.0.1189.jar
[ERROR] urls[5] =
file:/C:/Users/chakrabok/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
[ERROR] Number of foreign imports: 1 [ERROR] import: Entry[import
from realm ClassRealm[maven.api, parent: null]] [ERROR] [ERROR]
-----------------------------------------------------:org.sonar.java.model.PackageUtils
请告诉我该怎么办?
解决方案
您可以使用以下任一解决方案来解决此问题:
在Sonarqube Web 控制台中停用“强制安全注释”规则。
在项目的 pom.xml 中添加如下依赖:
<dependencies> ... <dependency> <groupId>org.sonarsource.java</groupId> <artifactId>java-squid</artifactId> <version>3.11</version> </dependency> </dependencies>
确保在 pom.xml 中添加依赖后,您已经编译了项目(mvn clean install),然后将 jar 文件复制到
<sonarqube_dir>
/ extensions/plugins/目录中,最后重新启动 sonarqube 服务器。
PS org.sonar.java.model.PackageUtils 类由SecurityAnnotationMandatoryRule引入,需要在pom.xml 中添加其依赖。
推荐阅读
- java - iText7 setRotation()无法正常工作
- node.js - 我在本地解析服务器上上传的文件在哪里?
- apache-spark - 排除 CDH 中 spark-core 的依赖性
- sql - 如果一行受到条件的影响,我如何级联它以选择具有该标识符的所有行?
- asp.net-core - 如何显示帖子的数量?
- joi - ArangoDB Fox 语法错误声明架构参数
- javascript - TypeError:在对象电子表格中找不到函数 getSheetById
- acumatica - 将显示对话框面板添加到操作“操作电子邮件发票/备忘录”
- c# - 链接 IEnumerable 的方法 Where 和 Select 是否比单独执行它们慢?
- html - 在页面上划分部分时使用 div 或样式内容元素更好吗?