1

参考声纳的这个错误:http: //jira.codehaus.org/browse/SONAR-1865

而这个(交叉引用上面的那个):http: //jira.codehaus.org/browse/SONAR-1637

我仍然看到这个问题。

我正在使用 Sonar 服务器版本 2.12。
我正在使用 Hudson,版本 2.2.0。
我已经在 Hudson 中安装了 Sonar 插件,版本 1.7.2。

而且,最重要的是,我在 Sonar 服务器中安装了 Flex 插件。Flex 插件版本为 0.4。

当我mvn sonar:sonar -Pflex在 flex 项目上运行时,我在堆栈跟踪中收到此错误:

Caused by: java.lang.IllegalArgumentException: Java inner classes are not supported : EntityEnums$ReportParameterName
    at org.sonar.plugins.flex.FlexFile.<init>(FlexFile.java:79)
    at org.sonar.plugins.flex.FlexFile.fromIOFile(FlexFile.java:165)
    at org.sonar.plugins.flex.FlexSourceImporter.createResource(FlexSourceImporter.java:37)
    at org.sonar.api.batch.AbstractSourceImporter.parseDirs(AbstractSourceImporter.java:75)
    at org.sonar.api.batch.AbstractSourceImporter.analyse(AbstractSourceImporter.java:69)
    at org.sonar.api.batch.AbstractSourceImporter.analyse(AbstractSourceImporter.java:60)
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:64)

这是我的班级所抱怨的样子:

这是一个 Actionscript 类,文件名: EntityEnums$ReportParameterName.as. 它是使用 GraniteDS 从 java 到 Actionscript 自动生成的。

package com.digabit.core.db.entity.util {
    [Bindable]
    public class EntityEnums$ReportParameterName {

        public static const tnid:String = "tnid";
        public static const uname:String = "uname";
        public static const lc:String = "lc";
        public static const tnkey:String = "tnkey";
        public static const oid:String = "oid";

        public function EntityEnums$ReportParameterName()
        {
            super();
        }
   }
}

因此,根据错误报告,这已在我拥有的早期版本的 Sonar 中得到修复;但我仍然在 2.12 版中看到它。当这是一个 flex/actionscript 类时,为什么错误会显示“java 内部类...”?有人还在看到这种错误行为吗?

4

1 回答 1

1

问题已在 Sonar Flex 插件端 ( http://jira.codehaus.org/browse/SONARPLUGINS-1623 ) 创建,很可能会在下一个版本中修复。

于 2012-01-18T10:41:30.683 回答