sonar-runner测试代码的时候,报出文件声明和目录结构不一致的错误
用sonar作为代码检查工具检查代码,用android2.2源码作为被测代码,配置sonar-runner需要的sonar-properties文件
配置好了之后,直接运行sonar-runner,结果执行了50多分钟后报出一个包的声明和这个源码的目录结构不匹配,android的源码那么多,有那么多的目录,手动修改是不可能的,我觉得这应该是sonar自己的问题,有没有其他同志以前遇到过类似的问题,有没有好的解决办法?
执行了50多分钟报错了,那叫一个郁闷啊。
打印的错误信息如下:
[ERROR] Squid Error occurs when analysing :/home/kes/froyo/device/sample/apps/upgrade/src/com/example/android/platform/upgrade/Upgrade.java
org.sonar.squid.api.AnalysisException: The source directory does not correspond to the package declaration com.example.android.platform.upgrade
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]
at org.sonar.java.ast.visitor.PackageVisitor.visitFile(PackageVisitor.java:50) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.java.ast.CheckstyleSquidBridge.beginTree(CheckstyleSquidBridge.java:87) [sonar-squid-java-plugin-2.8.jar:na]
at com.puppycrawl.tools.checkstyle.TreeWalker.notifyBegin(TreeWalker.java:349) [checkstyle-5.1.jar:5.1]
at com.puppycrawl.tools.checkstyle.TreeWalker.walk(TreeWalker.java:324) [checkstyle-5.1.jar:5.1]
at com.puppycrawl.tools.checkstyle.TreeWalker.processFiltered(TreeWalker.java:186) [checkstyle-5.1.jar:5.1]
at com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck.process(AbstractFileSetCheck.java:73) [checkstyle-5.1.jar:5.1]
at com.puppycrawl.tools.checkstyle.Checker.process(Checker.java:262) [checkstyle-5.1.jar:5.1]
at org.sonar.java.ast.JavaAstScanner.launchCheckstyle(JavaAstScanner.java:129) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.java.ast.JavaAstScanner.scanFiles(JavaAstScanner.java:118) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.plugins.squid.SquidExecutor.scanSources(SquidExecutor.java:163) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.plugins.squid.SquidExecutor.scan(SquidExecutor.java:84) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.plugins.squid.SquidSensor.analyzeMainSources(SquidSensor.java:78) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.plugins.squid.SquidSensor.analyse(SquidSensor.java:62) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:58) [sonar-batch-2.8.jar:na]
at org.sonar.batch.phases.Phases.execute(Phases.java:80) [sonar-batch-2.8.jar:na]
at org.sonar.batch.ProjectBatch.execute(ProjectBatch.java:59) [sonar-batch-2.8.jar:na]
at org.sonar.batch.Batch.analyzeModule(Batch.java:164) [sonar-batch-2.8.jar:na]
at org.sonar.batch.Batch.analyzeModules(Batch.java:82) [sonar-batch-2.8.jar:na]
at org.sonar.batch.Batch.execute(Batch.java:62) [sonar-batch-2.8.jar:na]
at org.sonar.runner.Launcher.executeBatch(Launcher.java:60) [sonar-runner.jar:na]
at org.sonar.runner.Launcher.execute(Launcher.java:53) [sonar-runner.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.5.0_22]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.5.0_22]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.5.0_22]
at java.lang.reflect.Method.invoke(Method.java:592) [na:1.5.0_22]
at org.sonar.runner.Main.delegateExecution(Main.java:111) [sonar-runner.jar:na]
at org.sonar.runner.Main.execute(Main.java:67) [sonar-runner.jar:na]
at org.sonar.runner.Main.main(Main.java:48) [sonar-runner.jar:na]
[DEBUG] Throwable occured.
org.sonar.squid.api.AnalysisException: The source directory does not correspond to the package declaration com.example.android.platform.upgrade
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]
at org.sonar.java.ast.visitor.PackageVisitor.visitFile(PackageVisitor.java:50) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.java.ast.CheckstyleSquidBridge.beginTree(CheckstyleSquidBridge.java:87) [sonar-squid-java-plugin-2.8.jar:na]
at com.puppycrawl.tools.checkstyle.TreeWalker.notifyBegin(TreeWalker.java:349) [checkstyle-5.1.jar:5.1]
at com.puppycrawl.tools.checkstyle.TreeWalker.walk(TreeWalker.java:324) [checkstyle-5.1.jar:5.1]
at com.puppycrawl.tools.checkstyle.TreeWalker.processFiltered(TreeWalker.java:186) [checkstyle-5.1.jar:5.1]
at com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck.process(AbstractFileSetCheck.java:73) [checkstyle-5.1.jar:5.1]
at com.puppycrawl.tools.checkstyle.Checker.process(Checker.java:262) [checkstyle-5.1.jar:5.1]
at org.sonar.java.ast.JavaAstScanner.launchCheckstyle(JavaAstScanner.java:129) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.java.ast.JavaAstScanner.scanFiles(JavaAstScanner.java:118) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.plugins.squid.SquidExecutor.scanSources(SquidExecutor.java:163) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.plugins.squid.SquidExecutor.scan(SquidExecutor.java:84) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.plugins.squid.SquidSensor.analyzeMainSources(SquidSensor.java:78) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.plugins.squid.SquidSensor.analyse(SquidSensor.java:62) [sonar-squid-java-plugin-2.8.jar:na]
at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:58) [sonar-batch-2.8.jar:na]
at org.sonar.batch.phases.Phases.execute(Phases.java:80) [sonar-batch-2.8.jar:na]
at org.sonar.batch.ProjectBatch.execute(ProjectBatch.java:59) [sonar-batch-2.8.jar:na]
at org.sonar.batch.Batch.analyzeModule(Batch.java:164) [sonar-batch-2.8.jar:na]
at org.sonar.batch.Batch.analyzeModules(Batch.java:82) [sonar-batch-2.8.jar:na]
at org.sonar.batch.Batch.execute(Batch.java:62) [sonar-batch-2.8.jar:na]
at org.sonar.runner.Launcher.executeBatch(Launcher.java:60) [sonar-runner.jar:na]
at org.sonar.runner.Launcher.execute(Launcher.java:53) [sonar-runner.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [na:1.5.0_22]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [na:1.5.0_22]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.5.0_22]
at java.lang.reflect.Method.invoke(Method.java:592) [na:1.5.0_22]
at org.sonar.runner.Main.delegateExecution(Main.java:111) [sonar-runner.jar:na]
at org.sonar.runner.Main.execute(Main.java:67) [sonar-runner.jar:na]
at org.sonar.runner.Main.main(Main.java:48) [sonar-runner.jar:na]
[DEBUG] Delete temporary directories
[DEBUG] Delete temporary directory: /tmp/sonar-batch55133849584790762221322733174950707000