我设法使用grunt-tslint来分析我的打字稿项目。我有几个问题。如何让grunt-tslint生成一个pmd文件在jenkins中使用
默认情况下,会为每个输入TS文件创建一个输出文件。这会失败,因为所有输出文件的文件名相同,并且保存第二个输出文件失败,因为该文件已存在。 使用appendOutput可以避免此问题。这将每个文件分析的输出附加到现有文件。通过这个选项,可以生成一个文件用于分析整个项目。
这个问题是,如果你使用这个post中讨论过的pmd格式化程序。如果分析一个文件就没有问题。一个pmd.xml文件被创建并且是有效的。如果创建多个文件,并使用appendOutput选项你在同一个文件中的多根标签与此类似多个XML文档:
<pmd>content</pmd>
<pmd>content</pmd>
<pmd>content</pmd>
<pmd>content</pmd>
(我不能粘贴实际的文件内容,我可以”从我的工作电脑发布)。 当这个文件被jenkins分析时,它会失败,因为它不是一个有效的xml文档。
像有这个问题的一些解决方案,在我看来:
- 输出非PMD文件(JSON也许),并创建一个新的咕噜任务,把这一JSON文件分割成一个有效的PMD任务
- 修复grunt-tslint,以便它可以输出具有不同名称的多个文件(查看代码,从代码的角度来看这不会太难)
- 创建一个咕噜任务,将修复破损的xml也可能会被一些正则表达式进行查找和替换)
有没有人有这个问题的任何经验或有任何其他解决办法?
谢谢你。我曾尝试使用grunt-text-replace来删除根标签,但是这样删除了所有这些标签。我不能让它与正则表达式一起工作,不要删除第一个和最后一个。如果你可以共享单行巫术来将整个文件包装在根标签中,那么我就可以解决我的问题了。 – Roaders
我编辑了我的答案以包含更多详细信息。这不是最优雅的解决方案,但应该可以正常工作。 – antweiss
谢谢,就是这样。 – Roaders