FlexPMD违规查看器 - 如何直接查看结果

时间:2012-03-01 06:55:31

标签: actionscript-3 flash flex flex-pmd

所以我开始使用FlexPMD进行静态代码分析,我想将它添加到我的团队的构建过程中。我从shell脚本运行得很好,并且可以通过单击按钮并在随附的Violations Viewer中上传所需的(pmd.xml)输出文件来查看结果(注意这里还有一个在线:{{3 }})。

但我想直接查看结果,而无需采取额外的步骤点击上传按钮。我想有一些黑魔法URL参数可以工作,但是(如果是的话)它是什么?这个网站:

http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-violations-viewer.html

提到使用“report”URL参数引用pmd.xml,如下所示:

http://blogs.adobe.com/xagnetti/2009/09/load_pmd_results_directly_in_t.html

但它不适合我。有没有人遇到这个问题并且偶然胜利?

编辑:更多信息...... 后者(opensource.adobe.com ...)网页包含以下JavaScript:

function getReport()
{
    if ( window.location.href.indexOf('=') == -1 )
    {
        return "";
    }
    var hashes = window.location.href.slice(window.location.href.indexOf('=') + 1);

    return hashes;
}

var report = getReport();

它传递给flashvars。也许我传递pmd.xml的格式不正确?

1 个答案:

答案 0 :(得分:0)

好的,想通了。随开源FlexPMD一起提供的违规查看器版本不允许自动查看报告(HTML包装器不会在报告文件路径中传递,并且SWF不会将其带入)。对我有用的解决方案是从在线违规查看器下载文件:

http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-violations-viewer.html?report=path/to/my/pmd.xml

通过使用您的浏览器只保存网页,然后curl保存SWF文件(直接尝试从浏览器保存将无法正常工作 - 似乎重定向到空地址),如下所示:

curl -O http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-violations-viewer-1.1.swf

并将您下载的违规查看器html文件放在同一目录中。然后您可以自动阅读报告!这是一个示例(Mac上的绝对文件路径):

文件:///path/to/your/violations-viewer/ViolationsViewer.html报告= /用户/ joverton /一些/项目/路径/ bin中调试/ pmd_reports / pmd.xml