参考Sonar的这个bug: http://jira.codehaus.org/browse/SONAR-1865
和这一个(交叉参考上面的那个): http://jira.codehaus.org/browse/SONAR-1637
我仍然看到这个问题。
我使用的是Sonar服务器版本2.12
我正在使用Hudson,版本2.2.0
我已经在Hudson 1.7.2版本中安装了Sonar插件。
最重要的是,我在Sonar服务器上安装了Flex插件。 Flex插件版本为0.4。
当我在flex项目上运行mvn sonar:sonar -Pflex
时,我在堆栈跟踪中收到此错误:
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 inner classes ...”?还有人还看到这种bug行为吗?
答案 0 :(得分:1)
问题已在Sonar Flex插件方面创建(http://jira.codehaus.org/browse/SONARPLUGINS-1623),并且很可能在下一版本中修复。