参考声纳的这个错误: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 内部类...”?有人还在看到这种错误行为吗?