2

Hudson CI に静的コード アナライザーを実装しようとしていて、ここで述べたように試みていましたが、同じ機能に SONAR を使用することに出会いました。次の手順を実行しましたが、Hudson ジョブの実行時にエラーが発生しました

  1. ソナー設置&稼働中
  2. ハドソンにソナープラグインをインストールし、ソナーインスタンスの詳細を使用してハドソンを構成しました
  3. すでに定義されているジョブの構成されたソナーの詳細
  4. 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 を認識して実行できました。

4

3 に答える 3

2

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

これは予想どおりです。このソナー構成を指定したスクリーン ショットを添付しました。

あなたの問題はジョブ構成ではないようです.代わりに、Jenkinsは「mvn.bat」コマンドを見つけることができません....

java.io.IOException: プログラム "mvn.bat" を実行できません (ディレクトリ "D:\Users\abcd.hudson\jobs\QA Build Local\workspace\view" 内): CreateProcess エラー = 2、システムがファイルを見つけられません指定

Maven の構成方法を調査する必要があります。

于 2012-07-27T22:08:01.307 に答える