尝试通过 allure-jenkins-plugin 创建 allure 报告时出现 NullPointerException

NullPointerException when trying to create allure report by allure-jenkins-plugin

当我尝试通过 allure-jenkins-plugin 创建 allure 报告时出现这样的错误:

ERROR: Publisher ru.yandex.qatools.allure.jenkins.AllureReportPublisher aborted due to exception
java.io.IOException: java.lang.NullPointerException
    at ru.yandex.qatools.allure.jenkins.utils.ReportGenerator.invoke(ReportGenerator.java:50)
    at ru.yandex.qatools.allure.jenkins.utils.ReportGenerator.invoke(ReportGenerator.java:25)
    at hudson.FilePath.act(FilePath.java:991)
    at hudson.FilePath.act(FilePath.java:969)
    at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.generateReport(AllureReportPublisher.java:267)
    at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.perform(AllureReportPublisher.java:146)
    at hudson.tasks.BuildStepMonitor.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:764)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:724)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:671)
    at hudson.model.Run.execute(Run.java:1769)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
Caused by: java.lang.NullPointerException
    at ru.yandex.qatools.clay.internal.AetherUtils.getRepositoriesAsList(AetherUtils.java:183)
    at ru.yandex.qatools.clay.Aether.<init>(Aether.java:60)
    at ru.yandex.qatools.clay.Aether.aether(Aether.java:78)
    at ru.yandex.qatools.allure.jenkins.utils.ReportGenerator.createAether(ReportGenerator.java:69)
    at ru.yandex.qatools.allure.jenkins.utils.ReportGenerator.invoke(ReportGenerator.java:45)
    ... 14 more

xml-由 allure 创建的文件是有效的(我可能会使用相同的 xml 创建具有 maven 目标 "site" 的正确报告),所以问题一定出在 jenkins 插件中。

我安装了 maven 3.2.5,settings.xml 存在于 ~/.m2 目录中并且似乎是正确的。

出现这样的错误可能是什么原因?似乎它与 Maven 设置有某种联系。

问题出在 Maven settings.xml 文件中,在

<activeProfiles> 

节。它包含配置文件,实际上并不存在。删除此配置文件解决了问题。

这可能是由于 :

  1. Allure 没有安装在 Jenkin 中。

步骤:

Go to Manage Jenkins > 
Global Tool Configuration >
Allure Commandline > 
Add Allure Commandline > 
Uncheck "Install automatically"

从 maven repo 下载最新的 allure 命令行 - https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

解压文件并提供位置

安装目录:C:\allure-2.17.2 (I am using windows, jenkin)