Hudson CI に静的コード アナライザーを実装しようとしていて、ここで述べたように試みていましたが、同じ機能に SONAR を使用することに出会いました。次の手順を実行しましたが、Hudson ジョブの実行時にエラーが発生しました
- ソナー設置&稼働中
- ハドソンにソナープラグインをインストールし、ソナーインスタンスの詳細を使用してハドソンを構成しました
- すでに定義されているジョブの構成されたソナーの詳細
hudson ジョブは、WAR ファイルを Tomcat6 にデプロイするまでは正常に実行されましたが、ソナー操作を開始すると失敗しました。
Hudson ジョブ コンソールで次のエラーを受け取りました
java.io.IOException: プログラム "mvn.bat" を実行できません (ディレクトリ "D:\Users\abcd.hudson\jobs\QA Build Local\workspace\view" 内): CreateProcess エラー = 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: コマンドの実行に失敗しました java.io.IOException: プログラム "mvn.bat" を実行できません (ディレクトリ "D:\Users\abcd\.hudson\jobs\QA Build Local\workspace\view" 内): CreateProcess エラー = 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 エラー = 2、指定されたファイルが見つかりません java.lang.ProcessImpl.create(ネイティブメソッド)で java.lang.ProcessImpl で。(ProcessImpl.java:81) java.lang.ProcessImpl.start(ProcessImpl.java:30) で java.lang.ProcessBuilder.start(ProcessBuilder.java:452) で ... 19件以上 ソナー解析完了: FAILURE
コマンド プロンプトから maven-sonar コマンドを手動で実行したところ、ソナー分析が正常に完了し、結果がソナー Web サイトで公開されました。
注: M2_HOME 環境変数がサーバーに設定されていないことがわかりました。これはエラーになりますか?
修正の更新:
Windows PATH 環境変数に maven_home\bin フォルダーを設定すると、ソナーは mvn.bat を認識して実行できました。