Sonarqube mvn sonar:sonar在执行Java AST扫描时引发异常

Sonarqube mvn sonar:sonar在执行Java AST扫描时引发异常,sonarqube,Sonarqube,请注意:-我的mvn清洁安装成功 但当我做mvn声纳:声纳它把我扔了 [ERROR] Squid Error occurs when analysing :/junk/test/src/main/java/API/com/API/HelloAPI.java org.sonar.squid.api.AnalysisException: The source directory does not correspond to the package declaration com.API

请注意:-我的mvn清洁安装成功 但当我做mvn声纳:声纳它把我扔了

[ERROR]  Squid Error occurs when analysing :/junk/test/src/main/java/API/com/API/HelloAPI.java
org.sonar.squid.api.AnalysisException: The source directory does not correspond to the package declaration com.API
        at org.sonar.java.ast.visitor.PackageVisitor.checkPhysicalDirectory(PackageVisitor.java:93) [sonar-squid-java-plugin-2.8.jar:na]
        at org.sonar.java.ast.visitor.PackageVisitor.createSourcePackage(PackageVisitor.java:75) [sonar-squid-java-plugin-2.8.jar:na]

信息非常清楚:包声明是错误的。如果源目录是/junk/test/src/main/java(这是Maven中的默认值),那么它应该是API.com.API。另一种方法是将源目录更改为src/main/java/API。

可能是因为POM包含以下行:

<sourceDirectory>.</sourceDirectory>
如果是这样,将其更改为以下内容可能会有所帮助:

<sourceDirectory>src/main/java</sourceDirectory>
src/main/java
马文不在乎,但声纳在乎

我对sonar和eclipse生成的maven项目也有同样的问题


(在上找到解决方案)

升级到更新的sonar插件(sonar-maven3-plugin:3.7.1/3.7.3/4.0运行在SonarQube服务器3.5.1上)后,对于使用3.6-RC3/3.6.3/3.7.0的源文件,我收到了相同的错误消息。显然,3.7.1引入了这个问题:-/

如果在我的mvn clean compile安装上编写了包声明也失败了,它在发布mvn sonar时抛出异常:sonar日志文件可以在[link]上找到任何更新,我对此被阻止或我的Q不清楚我有相同的错误,但是,当我按照您的建议更改sourceDirectory时,maven找不到任何要编译的源代码。我正在尝试分析一个有两个源文件夹的遗留应用程序,我发现实现这一点的唯一方法是配置pom.xml文件:。和foo/***/.java