grunt-tslint を使用して typescript プロジェクトを分析することができました。いくつか問題があります。
デフォルトでは、入力 TS ファイルごとに 1 つの出力ファイルが作成されます。すべての出力ファイルのファイル名が同じであるため、これは失敗し、ファイルが既に存在するため、2 番目の出力ファイルの保存は失敗します。この問題は、appendOutput を使用することで回避できます。これにより、各ファイルの分析からの出力が既存のファイルに追加されます。このオプションを使用すると、プロジェクト全体の分析用に 1 つのファイルが作成されます。
これに関する問題は、この投稿で説明されている pmd フォーマッターを使用する場合です。1 つのファイルが解析されれば問題ありません。1 つの pmd.xml ファイルが作成され、有効になります。複数のファイルが作成され、appendOutput オプションを使用すると、同じファイル内に複数のルート タグを持つ複数の xml ドキュメントが次のように取得されます。
<pmd>content</pmd>
<pmd>content</pmd>
<pmd>content</pmd>
<pmd>content</pmd>
(仕事用のPCから投稿できないので、実際のファイルの内容を貼り付けることはできません)。このファイルを jenkins で分析すると、有効な xml ドキュメントではないため失敗します。
この問題にはいくつかの解決策があるように思えます。
- 非 pmd ファイル (おそらく json) を出力し、新しい grunt タスクを作成して、その json ファイルを 1 つの有効な pmd タスクに変換します。
- grunt-tslint を修正して、異なる名前の複数のファイルを出力できるようにします (コードを見ると、コードの観点からはそれほど難しくありません)。
- 壊れたxmlを修正する単調なタスクを作成します(これは、正規表現の検索と置換で実行できる可能性があります)
誰かがこの問題を経験したことがありますか、または他の解決策がありますか?