0

そのため、FlexPMD を静的コード分析に使用し始めました。これをチームのビルド プロセスに追加したいと考えています。私はそれをシェルスクリプトからうまく実行しており、ボタンをクリックして、付属の Violations Viewer に目的の (pmd.xml) 出力ファイルをアップロードすることで結果を表示できます (オンラインにも 1 つあることに注意してください: 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

次のように、「レポート」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 ...)のWebページには次の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

ブラウザーを使用して Web ページを保存し、次に curl して SWF ファイルを保存します (ブラウザーから直接保存しようとしても機能しません - null アドレスにリダイレクトされるようです)。

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 に答える