当前位置: 首页 > 面试题库 >

WarningsPlugin无法从MSBuild收集警告

滕翔飞
2023-03-14
问题内容

我正在尝试多分支工作。构建解决方案是可行的,但是解析由构建生成的警告会失败。

这是我的Jenkinsfile:

node {
    stage ('Checkout')
    {
        checkout scm
    }

    stage ('Build')
    {
        bat "\"${tool 'MSBuild VS2013'}\" Solution.sln /p:Configuration=Release /p:Platform=\"Any CPU\" /p:ProductVersion=1.0.0.${env.BUILD_NUMBER}"
    }

    stage ('Warnings')
    {
        step([$class: 'WarningsPublisher', canComputeNew: false, canResolveRelativePaths: false, defaultEncoding: '', excludePattern: '', healthy: '', includePattern: '', messagesPattern: '', parserConfigurations: [[parserName: 'MSBuild']], unHealthy: ''])
    }
}

我从警告插件得到以下异常:

Projekt : Das Einlesen der Datei d:\jenkins20\configs\workspace\JenkinsFile_master-CQILFOMT634B5TYN4BWJKVHYYWABZMZHXNE4WK5BQE2E2MJN4MDQ ist wegen folgender Exception fehgeschlagen: java.io.FileNotFoundException: d:\jenkins20\configs\workspace\JenkinsFile_master-CQILFOMT634B5TYN4BWJKVHYYWABZMZHXNE4WK5BQE2E2MJN4MDQ (Zugriff verweigert)
 at java.io.FileInputStream.open0(Native Method)
 at java.io.FileInputStream.open(Unknown Source)
 at java.io.FileInputStream.<init>(Unknown Source)
 at hudson.plugins.warnings.parser.ParserRegistry.createReader(ParserRegistry.java:325)
 at hudson.plugins.warnings.parser.ParserRegistry.parse(ParserRegistry.java:281)
 at hudson.plugins.warnings.parser.ParserRegistry.parse(ParserRegistry.java:261)
 at hudson.plugins.warnings.parser.FileWarningsParser.parse(FileWarningsParser.java:44)
 at hudson.plugins.analysis.core.FilesParser.parseFile(FilesParser.java:325)
 at hudson.plugins.analysis.core.FilesParser.parseFiles(FilesParser.java:283)
 at hudson.plugins.analysis.core.FilesParser.parseSingleFile(FilesParser.java:241)
 at hudson.plugins.analysis.core.FilesParser.invoke(FilesParser.java:200)
 at hudson.plugins.analysis.core.FilesParser.invoke(FilesParser.java:31)
 at hudson.FilePath.act(FilePath.java:996)
 at hudson.FilePath.act(FilePath.java:974)
 at hudson.plugins.warnings.WarningsPublisher.parseFiles(WarningsPublisher.java:392)
 at hudson.plugins.warnings.WarningsPublisher.perform(WarningsPublisher.java:290)
 at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:68)
 at hudson.plugins.analysis.core.HealthAwareRecorder.perform(HealthAwareRecorder.java:295)
 at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:69)
 at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:59)
 at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
 at hudson.security.ACL.impersonate(ACL.java:221)
 at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
 at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
 at java.util.concurrent.FutureTask.run(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)

问题答案:

通过将msbuild的输出写入文本文件,然后将此文件用作警告插件的输入来解决此问题

stage ('Checkout')
{
    checkout scm
}

stage ('Build')
{
    bat "\"${tool 'MSBuild VS2013'}\" Solution.sln /p:Configuration=Release /p:Platform=\"Any CPU\" /p:ProductVersion=1.0.0.${env.BUILD_NUMBER} > msbuild.log 2>&1"
    bat " type msbuild.log"
}

stage ('Warnings')
{
    step([$class: 'WarningsPublisher', canComputeNew: false, canResolveRelativePaths: false, defaultEncoding: '', excludePattern: '', healthy: '', includePattern: '', messagesPattern: '', parserConfigurations: [[parserName: 'MSBuild', pattern: 'msbuild.log']], unHealthy: ''])
}


 类似资料:
  • 我在somes网站上尝试过,效果很好。问题是当我在一个特定的网站(www.ifood.com.br)使用时。它收集一些链接,然后返回一些错误。我是Python的初学者,所以我不知道它们是什么意思。拜托,我需要一些帮助。 代码的结果: https://d1jgln4w9al398.cloudfront.net/imagens/ce/wl/www.ifood.com.br/favicon.ico ht

  • 解决方案目录包含ExtraDlls和项目目录。在Project.csproj文件中,我们在ExtraDlls中有相对路径的dlls引用。ExtraDlls目录中的Dlls总是可用的。 使用下面的批处理文件发布web项目。但由于以下提到的细节,它失败了。 已尝试更改批处理文件中的根目录。i、 e.当根目录设置为包含MSBuild的根目录时。exe,还是同样的问题。 设置用$(SolutionDir)

  • 问题内容: 运行Adrian的线性二进制模式代码。该程序运行,但发出以下警告: 我正在使用opencv3.7运行python2.7,该怎么办? 问题答案: 通常,当优化算法无法收敛时,通常是因为问题条件不佳,可能是由于决策变量的缩放比例不佳。您可以尝试一些方法。 标准化您的训练数据,以使问题有望得到更好解决,从而可以加快收敛速度​​。一种可能是使用Scikit-Learn的StandardScal

  • 在ubuntu上使用Libreoffice转换文件时出错: CompletedProcess(args=['soffice'、'--headless'、'--convert to'、'txt:Text'、'/var/www/Project/temp/e4bac2c2e7c04eb79cfa522967a30dd3.docx'、'--outdir'、'/var/www/Project/temp/']

  • 问题内容: 我正在作为Hudson Slave在虚拟机中工作。在虚拟机中,我将路径添加到要使用的MSBuild中: 我还添加了NUnit的路径: 因此,我可以在VM中运行NUnit和MSBuild命令行。 但是当我的Hudson Job建立我的解决方案时,我得到了这个错误: 我应该在VM或Hudson中修复什么?非常感谢! 编辑 这里有关的文件* .csproj如何引用dll: 问题答案: 问题不

  • 有人能建议从节点集群收集指标的最佳模式吗(每个节点都是带有Java应用程序的Tomcat Docker容器)? 我们计划使用ELK堆栈(ElasticSearch、Logstash、Kibana)作为可视化工具,但我们的问题是如何将指标交付给Kibana? 我们使用DropWizard度量库,它提供每个实例的度量(量表、计时器、直方图)。 显然,应该收集每个实例的一些指标(例如,cpu、内存等..