当前位置: 首页 > 知识库问答 >
问题:

从哈德逊作业运行声纳时发生maven错误

上官凯歌
2023-03-14

我们试图在Hudson CI中实现静态代码分析器,正如这里所提到的,但是,我遇到了使用声纳实现相同功能的问题。我们执行了以下步骤,但在Hudson作业运行时出错

>

  • 安装声纳

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

    JAVA木卫一。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
    FATAL: command execution failed
    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
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
        at hudson.Proc$LocalProc.(Proc.java:192)
        at hudson.Proc$LocalProc.(Proc.java:164)
        at hudson.Launcher$LocalLauncher.launch(Launcher.java:639)
        at hudson.Launcher$ProcStarter.start(Launcher.java:274)
        at hudson.Launcher$ProcStarter.join(Launcher.java:281)
        at hudson.tasks.Maven.perform(Maven.java:263)
        at hudson.plugins.sonar.utils.SonarMaven.executeMaven(SonarMaven.java:138)
        at hudson.plugins.sonar.SonarPublisher.executeSonar(SonarPublisher.java:300)
        at hudson.plugins.sonar.SonarPublisher.perform(SonarPublisher.java:261)
        at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36)
        at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:630)
        at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:608)
        at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:584)
        at hudson.model.Build$RunnerImpl.post2(Build.java:159)
        at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:553)
        at hudson.model.Run.run(Run.java:1390)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
        at hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:145)
    Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.(ProcessImpl.java:81)
        at java.lang.ProcessImpl.start(ProcessImpl.java:30)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
        ... 19 more
    Sonar analysis completed: FAILURE
    

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

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

    修复更新:

    我们在windows PATH环境变量中设置了maven_home\bin文件夹,然后sonar能够识别mvn。击球然后跑。

  • 共有3个答案

    施轶
    2023-03-14
    • 詹金斯在Tomcat中扮演战争角色

    我已经在Windows中安装了Maven并正确配置了环境变量

    FATAL: command execution failed
    java.io.IOException: Cannot run program "mvn.bat" (in directory "C:\.jenkins\workspace\my_project"): CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:470)
        at hudson.Proc$LocalProc.<init>(Proc.java:244)
        at hudson.Proc$LocalProc.<init>(Proc.java:216)
        at hudson.Launcher$LocalLauncher.launch(Launcher.java:803)
        at hudson.Launcher$ProcStarter.start(Launcher.java:381)
        at hudson.Launcher$ProcStarter.join(Launcher.java:388)
        at hudson.tasks.Maven.perform(Maven.java:328)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770)
        at hudson.model.Build$BuildExecution.build(Build.java:199)
        at hudson.model.Build$BuildExecution.doRun(Build.java:160)
        at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)
        at hudson.model.Run.execute(Run.java:1759)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
        at hudson.model.ResourceController.execute(ResourceController.java:89)
        at hudson.model.Executor.run(Executor.java:240)
    Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:177)
        at java.lang.ProcessImpl.start(ProcessImpl.java:28)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
    

    我重新启动了Tomcat服务,因此它加载了最后配置的Maven环境变量,使Jenkins可以使用这些变量。

    董联
    2023-03-14

    我也有同样的经历。在我的例子中,我必须更改maven目录的位置——当它位于“c:\ProgramFiles(x86)\wamp\bin\apache-maven-3.2.1”中时,它无法运行,但当我将其移动到“c:\maven”(并更改了系统变量:“Path”,包括“c:\maven\bin”,并由我创建“maven\u HOME=c:\maven”)。我必须重新启动计算机才能工作-签入windows控制台(windows徽标)-

    林涵映
    2023-03-14

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

    mvn.bat-f"D:\用户\abcd.hudson\作业\QA构建本地\工作空间\视图\msaccess\MyApp\Code\appone\pom.xml"-e-B声纳:声纳-Dsonar.host.url=http://localhost:9000/-D<-java. pdf

    这是预期的,您附加了指定此声纳配置的屏幕截图。

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

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

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

     类似资料:
    • 我的Jenkins安装有一个(奇怪的)问题,它基本上导致SVN更新在另一个基础上失败。 堆栈跟踪显示了两个问题: 和 如果我在发生这种情况后重新运行构建,一切都会正常工作。 做记号 由ganders编辑,具有完全相同的问题: 这是导致此错误的机器堆栈跟踪。它看起来就像是在它试图访问SVNExtranals目录(.../主干/公共)时发生的,并且由于某种原因,它在第一次尝试访问时没有凭据。然后下一次

    • 声纳扫描仪在运行扫描仪时抛出空指针异常。错误指向一个枚举。它实现了一个典型的接口。 我记得几个月前运行扫描仪时没有出现任何问题,但这次不同了,感谢您的帮助。 添加了一些乱码,我可以保证没有编译问题。 包括声纳项目属性。#所需元数据sonar.project密钥=com.companysonar.project名称=项目sonar.project版本=1.0

    • 问题内容: 我正在将Hudson设置为使用批处理任务插件来对我们的内部存储库进行Maven发布。我这样做是通过: 我对人们使用的其他方法以及这些方法的优缺点感兴趣。此外,遇到了任何陷阱。 问题答案: 由于某些原因,我倾向于总是手动进行发布。首先,如果您必须回滚,则可以更轻松地返回原始发行位置并执行此操作。其次,因为您需要在该过程中解决所有快照依赖性。 我们的开发过程使我们在以前的版本中将依赖项保留

    • 我正在Jenkins进行一个用sonarqube分析代码的项目。workspace下的项目结构为:/var/lib/jenkins/workspace/myproject-trunk-sonar/myproject/pom.xml,Module1,Module2等 如果pom.xml和模块所在的/var/lib/jenkins/workspace/myproject-trunk-sonar/myp

    • null 请让我知道如何解决这个问题。谢谢你。

    • 我尝试使用Jenkins上的java项目运行声纳分析,使用标准的maven sonar:sonar goal,并使用post STEP>>Execute SonarQube Scanner。我使用的maven目标是。 对于SonarQube扫描仪,我使用了下面的maven目标 SonarQube版本-7.7声纳扫描仪版本-3.3.0 Jenkins版本-2.164.3 Maven版本-3.6.1