首页 > 解决方案 > 在 Windows 上的 Jenkins 中记录 Java Xlint 警告时出错

问题描述

我尝试使用警告 NG 插件在 Jenkins 中记录来自 Maven 的 Java Xlint 警告。Jenkins 在 Windows 上运行。这是管道步骤:

recordIssues aggregatingResults: true, enabledForFailure: true, skipPublishingChecks: true, sourceCodeEncoding: 'UTF-8', tools: [java(), mavenConsole()]

不幸的是,录制失败,但出现以下异常:

java.nio.file.InvalidPathException: Illegal char <:> at index 2: /D:/jenkins/home/workspace/test-job/build/test-project/src/test/java/com/test/DummyClass.java
    at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
    at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
    at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
    at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
    at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:229)
    at java.base/java.nio.file.Path.of(Path.java:147)
    at java.base/java.nio.file.Paths.get(Paths.java:69)
    at io.jenkins.plugins.analysis.core.util.AffectedFilesResolver$RemoteFacade.isInWorkspace(AffectedFilesResolver.java:188)
    at io.jenkins.plugins.analysis.core.util.AffectedFilesResolver$RemoteFacade.isInWorkspace(AffectedFilesResolver.java:184)
    at io.jenkins.plugins.analysis.core.util.AffectedFilesResolver.copyAffectedFilesToBuildFolder(AffectedFilesResolver.java:122)
    at io.jenkins.plugins.analysis.core.util.AffectedFilesResolver.copyAffectedFilesToBuildFolder(AffectedFilesResolver.java:106)
    at io.jenkins.plugins.analysis.core.steps.IssuesScanner.copyAffectedFiles(IssuesScanner.java:170)
    at io.jenkins.plugins.analysis.core.steps.IssuesScanner.postProcessReport(IssuesScanner.java:121)
    at io.jenkins.plugins.analysis.core.steps.IssuesScanner.scan(IssuesScanner.java:97)
    at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.scanWithTool(IssuesRecorder.java:765)
    at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.record(IssuesRecorder.java:716)
    at io.jenkins.plugins.analysis.core.steps.IssuesRecorder.perform(IssuesRecorder.java:697)
    at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1109)
    at io.jenkins.plugins.analysis.core.steps.RecordIssuesStep$Execution.run(RecordIssuesStep.java:1067)
    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)

似乎前导斜杠导致此异常,但这是 Maven 编译器插件报告警告的方式:

[WARNING] /D:/jenkins/home/workspace/test-job/build/test-project/src/test/java/com/test/DummyClass.java:[58,27] DeprClass() in com.test.DeprClass has been deprecated

难道我做错了什么?实际上,它在我看来就像 Maven 编译器插件中的错误,因为警告中的路径无效。但由于这是它当前的行为方式,Warnings NG 插件应该能够使用它,不是吗?有没有办法调整 Maven 编译器插件或警告 NG 插件以相互理解?

标签: jenkinsjenkins-pluginsmaven-compiler-pluginwarnings-next-generation

解决方案


推荐阅读