我正在分析一个巨大的Java 6项目。由于给定的规则集与一些较旧的规则,我们注定要Sonarqube 4.5.6与一些特殊的插件,目前(分析运行与声纳扫描仪2.5.1)。
项目的分析完成后没有失败,但是日志中有许多关于类的警告,这些警告没有找到如下
WARN - Class not found: javax.servlet.http.HttpServletRequest来自其他插件的类似警告也有报道。因此,我环顾四周,通过将路径添加到Java 6 .jars到sonar-project.properties文件中的sonar.java.libraries配置中,找到了一个解决办法。现在,我消除了这些负载(除了org.apache.commons.io和org.apache.commons.fileupload中的几个类--无论对应的.jar是什么)。
这将在我的本地机器上工作,但真正的声纳服务器在其他地方,那里没有Java 6。因此,我想在某个目录中复制相关的.jars,并在sonar.java.libraries中引用该目录。
我的问题是:如何找出声纳分析中实际使用的.jars?我不想复制成千上万的文件,而实际上可能只需要十个。
有没有由声呐写的隐藏日志文件或类似的东西?还有别的主意吗?
发布于 2016-05-20 18:03:59
这个警告来自java分析器,告诉您找不到一些.class文件。您所描述的解决方案是正确的解决方案,以便从分析中获得更精确的结果。
您的问题是:在哪里可以找到与被警告丢失的类对应的jar?
SonarQube java分析器不能告诉您这一点(因为如果可以的话,它将尝试查找类)。我建议您在http://www.findjar.com/中查找一些类名,看看哪些依赖jars是必需的,并随意添加它们。
https://stackoverflow.com/questions/37345612
复制相似问题