当我使用声纳findbug进行代码审查时,它会抛出异常,声称缺少某些类。
经过一些研究,很明显,构建项目所需的罐子应该包含在pom.xml中以供声纳使用。
这样做,声纳官方网站建议,添加依赖项,
com.opensymphony
XWork的核心
2.1.6
系统
$ {BASEDIR} /...../ XWork的-core.jar添加
我正在使用Windows,有人请赐教,如何配置,特别是系统性的?
这是项目的一个模块的pom.xml。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>DB</groupId> <artifactId>Project1</artifactId> <name>project1</name> <version>1.0</version> <dependencies> <dependency> <groupId>com.opensymphony</groupId> <artifactId>xwork-core</artifactId> <version>2.1.6</version><!--installed into .m2 folder, local repository, then refer it--> </dependency> <dependency> <groupId>dep</groupId> <artifactId>dep1</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/lib//asn.jar</systemPath> </dependency> </dependencies> <build> <sourceDirectory>src</sourceDirectory> <outputDirectory>build-to/classes</outputDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> <excludes> <exclude>**/*.*</exclude> </excludes> </configuration> </plugin> </plugins> </build> <properties> <sonar.dynamicAnalysis>false</sonar.dynamicAnalysis> </properties> </project>
谢谢, 济
答案 0 :(得分:1)
你的项目是否已经是一个maven项目,或者你是用蚂蚁或其他工具编译东西然后试图让声纳对抗它?对于非常复杂的项目,Sonar Light模式可能很棘手。如果您有一个多模块项目,我会让最简单的项目在声纳的本地副本下工作,然后努力添加更多模块。
此外,我会尝试将文件本地复制到另一个不会从$ {basedir}升级的目录。看看是否有帮助。所以$ {basedir} /lib/xwork-core.jar是这样的。
也许对于Sonar分析,您可以使用单独的任务将所需的库复制到可以正确访问的临时文件夹,然后在分析完成后将其删除。
答案 1 :(得分:0)
我发现了问题。声纳的官方文件实际上是错误的。 “mvn sonar:sonar”将调用maven声纳插件2.0测试版,这将不会启用库jar工作的依赖。相反,调用“mvn sonar3:sonar”,调用最新版本的maven声纳插件2.4.1。