gpt4 book ai didi

从 hudson 作业运行 Sonar 时出现 maven 错误

转载 作者:行者123 更新时间:2023-12-04 05:37:58 25 4
gpt4 key购买 nike

我们试图在我们的 Hudson CI 中实现静态代码分析器,并且正如前面提到的那样尝试 here但是,我遇到了将 SONAR 用于相同功能的情况。我们执行了以下步骤,但是在运行 Hudson Job 时出现错误

  • 安装 Sonar 并运行
  • 在 Hudson 中安装了 Sonar 插件并使用 Sonar 实例详细信息配置了 hudson
  • 已定义作业的配置 Sonar 详细信息
  • hudson 作业成功运行,直到将 WAR 文件部署到 Tomcat6,但在启动 Sonar 操作时失败。

    我们在 Hudson 作业控制台中收到以下错误

  • java.io.IOException:无法运行程序“mvn.bat”(在目录“D:\Users\abcd.hudson\jobs\QA Build Local\workspace\view”中):CreateProcess error=2,系统找不到文件指定

    mvn.bat -f "D:\Users\abcd\.hudson\jobs\QA Build Local\workspace\view\msaccess\MyApp\Code\appone\pom.xml"-e -B sonar:sonar -Dsonar.host. url=http://localhost:9000/-Dsonar.language=java
    致命:命令执行失败
    java.io.IOException:无法运行程序“mvn.bat”(在目录“D:\Users\abcd\.hudson\jobs\QA Build Local\workspace\view”中):CreateProcess error=2,系统找不到指定文件
    在 java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
    在 hudson.Proc$LocalProc.(Proc.java:192)
    在 hudson.Proc$LocalProc.(Proc.java:164)
    在 hudson.Launcher$LocalLauncher.launch(Launcher.java:639)
    在 hudson.Launcher$ProcStarter.start(Launcher.java:274)
    在 hudson.Launcher$ProcStarter.join(Launcher.java:281)
    在 hudson.tasks.Maven.perform(Maven.java:263)
    在 hudson.plugins.sonar.utils.SonarMaven.executeMaven(SonarMaven.java:138)
    在 hudson.plugins.sonar.SonarPublisher.executeSonar(SonarPublisher.java:300)
    在 hudson.plugins.sonar.SonarPublisher.perform(SonarPublisher.java:261)
    在 hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
    在 hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:630)
    在 hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:608)
    在 hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:584)
    在 hudson.model.Build$RunnerImpl.post2(Build.java:159)
    在 hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:553)
    在 hudson.model.Run.run(Run.java:1390)
    在 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    在 hudson.model.ResourceController.execute(ResourceController.java:88)
    在 hudson.model.Executor.run(Executor.java:145)
    引起:java.io.IOException: CreateProcess error=2,系统找不到指定的文件
    在 java.lang.ProcessImpl.create(Native Method)
    在 java.lang.ProcessImpl.(ProcessImpl.java:81)
    在 java.lang.ProcessImpl.start(ProcessImpl.java:30)
    在 java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
    ... 19 更多
    Sonar 分析完成:失败

    我们从命令提示符手动运行 maven-sonar 命令, Sonar 分析成功完成,结果发布在 Sonar 网站上。

    注意:我们观察到服务器中没有设置 M2_HOME 环境变量。这会是一个错误吗?

    修复更新:

    我们在 windows PATH 环境变量中设置 maven_home\bin 文件夹,然后 Sonar 能够识别 mvn.bat 并运行。

    最佳答案

    Sonar 作为单独的 Maven 程序运行。命令行显示在日志的顶部:

    mvn.bat -f "D:\Users\abcd.hudson\jobs\QA Build Local\workspace\view\msaccess\MyApp\Code\appone\pom.xml" -e -B sonar:sonar -Dsonar.host.url=http://localhost:9000/ -Dsonar.language=java



    这是意料之中的,您附上了指定此 Sonar 配置的屏幕截图。

    您的问题似乎不是作业配置,而是 Jenkins 无法找到“mvn.bat”命令....

    java.io.IOException: Cannot run program "mvn.bat" (in directory "D:\Users\abcd.hudson\jobs\QA Build Local\workspace\view"): CreateProcess error=2, The system cannot find the file specified



    您需要调查您是如何配置 Maven 的。

    关于从 hudson 作业运行 Sonar 时出现 maven 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11682220/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com