问题描述
我有一个在Azure DevOps管道的Windows映像中运行的命令行任务。 执行pmd.bat命令并以代码4退出后,此任务完成。在我的本地CMD中,此命令运行得很好。
<!-- Start Box -->
<div class ="Box" aria-label="do you ever">
<svg class ="text-Box" height="5.59vh" width="15.54vw" viewBox="0 0 172 45">
<text font-family="Heebo-Light" font-size="24px" fill="#595959" fill-opacity="1" x="50%" y="53%" dominant-baseline="middle" text-anchor="middle">
<tspan>do you ever</tspan>
</text>
</svg>
<svg class ="rect-Box" height="5.59vh" width="15.54vw" viewBox="0 0 272 45" preserveAspectRatio="none">
<defs>
<linearGradient gradientTransform="rotate(90,0.5,0.5)" id="uniqueDomId-1114">
<stop offset="0%" stop-color="#AFAFAF" stop-opacity="1"></stop>
<stop offset="0%" stop-color="#F5F3F8" stop-opacity="1"></stop>
<stop offset="69.804%" stop-color="#F9F9F9" stop-opacity="1"></stop>
<stop offset="100%" stop-color="#FFFFFF" stop-opacity="1"></stop>
</linearGradient>
<filter id="uniqueDomId-1115" filterUnits="userSpaceOnUse" x="-15.75" y="-15.75" width="303.5" height="76.5">
<feFlood result="floodout" flood-color="#CCC1DA" flood-opacity="0.29"></feFlood>
<feGaussianBlur result="gaussOut" in="SourceAlpha" stdDeviation="2.450000047683716,2.450000047683716">
</feGaussianBlur>
<feComposite in="floodout" in2="gaussOut" operator="in"></feComposite>
</filter>
</defs>
<use transform="translate(-2.72,-0.45) scale(1.0199999809265137,1.0199999809265137) translate(0,0)" xlink:href="#uniqueDomId-1116" filter="url(#uniqueDomId-1115)" data-angle="0" data-distance="0" data-height="45" data-scale="1.02" data-adornment-type="drop-shadow" data-width="272" data-transform="[{"type":"translate","args":[-2.72,-0.45]},{"type":"scale","args":[1.0199999809265137,1.0199999809265137]}]"></use>
<g id="uniqueDomId-1116">
<g id="uniqueDomId-1117">
<path d="M0,0L272,0 272,45 0,45z" id="uniqueDomId-1118" fill="url(#uniqueDomId-1114)"></path>
</g>
</g>
</svg>
</div>
<!-- End Box -->
有人可以帮助我解决什么问题吗?
解决方法
在PMD中退出代码4表示至少检测到一次违规。
以下是使命令起作用的两种解决方案:
-
您可以将参数
<failurePriority>
设置为1(默认值为5),这样所有违规行为都将被视为警告并显示在构建输出中。然后,您可以查看命令在哪里出错。 -
您可以将参数
<failOnViolation>
设置为false
(默认值为true
),这样即使验证检查失败,命令也不会失败。与解决方案1的唯一区别是没有显示警告消息。
您可以在POM文件中设置参数:
<build>
<plugins>
<plugin>
<failurePriority>1</failurePriority>
<failOnViolation>false</failOnViolation>
</plugin>
</plugins>
</build>
或将它们设置为pmd.bat内联脚本的属性。
,正如Jane Ma-MSFT正确解释的那样,退出代码4表示检测到一些违规并且构建失败。
有关文档,请参见https://pmd.github.io/latest/pmd_userdocs_cli_reference.html#exit-status。
4:除非设置了-failOnViolation false,否则至少检测到一次违规。
如果您不希望构建失败并且只想生成报告,则可以调整脚本以添加-failOnVioltation false
:
指定如果发现违规,PMD是否以非零状态退出。默认情况下,如果发现违规,则PMD以状态4退出。使用
-failOnViolation false
禁用此功能,改为以0退出并仅输出报告。