0

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

但我想直接查看结果,而不必采取额外的点击上传按钮的步骤。我想有一些有效的黑魔法 URL 参数,但是(如果是的话)它是什么?本站:

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

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

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

但这对我不起作用。有没有人偶然遇到这个问题并取得了胜利?

编辑:更多信息...后者(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 的格式不正确?

4

1 回答 1

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 上的绝对文件路径):

file:///path/to/your/violations-viewer/ViolationsViewer.html?report=/Users/joverton/some/project/path/bin-debug/pmd_reports/pmd.xml

于 2012-03-01T19:42:31.320 回答