web-dev-qa-db-ja.com

Jenkinsでプログラム「gradle」を実行できません

Jenkins用のGradleプラグインをインストールしました。プロジェクトをビルドしようとすると、次のエラーが表示されます。

[workspace] $ gradle clean -b build/build.gradle
FATAL: command execution failed
Java.io.IOException: Cannot run program "gradle" (in directory "/Users/Shared/Jenkins/Home/jobs/test/workspace"): error=2, No such file or directory
    at Java.lang.ProcessBuilder.start(ProcessBuilder.Java:460)
    at hudson.Proc$LocalProc.<init>(Proc.Java:244)
    at hudson.Proc$LocalProc.<init>(Proc.Java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.Java:707)
    at hudson.Launcher$ProcStarter.start(Launcher.Java:338)
    at hudson.Launcher$ProcStarter.join(Launcher.Java:345)
    at hudson.plugins.gradle.Gradle.performTask(Gradle.Java:201)
    at hudson.plugins.gradle.Gradle.perform(Gradle.Java:97)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.Java:19)
    at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.Java:695)
    at hudson.model.Build$RunnerImpl.build(Build.Java:178)
    at hudson.model.Build$RunnerImpl.doRun(Build.Java:139)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.Java:465)
    at hudson.model.Run.run(Run.Java:1404)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
    at hudson.model.ResourceController.execute(ResourceController.Java:88)
    at hudson.model.Executor.run(Executor.Java:238)
Caused by: Java.io.IOException: error=2, No such file or directory
    at Java.lang.UNIXProcess.forkAndExec(Native Method)
    at Java.lang.UNIXProcess.<init>(UNIXProcess.Java:53)
    at Java.lang.ProcessImpl.start(ProcessImpl.Java:91)
    at Java.lang.ProcessBuilder.start(ProcessBuilder.Java:453)
    ... 16 more
Build step 'Invoke Gradle script' changed build result to FAILURE
Build step 'Invoke Gradle script' marked build as failure
Finished: FAILURE

タスクの実行$ gradle clean -b build/build.gradleはコマンドラインから期待どおりに機能します。

58

私は同じ問題を抱えていて、私にとっての問題はプロジェクト構成のgradleバージョンであることがわかりました。 デフォルトに設定されており、gradleバージョンに設定したときにManage Jenkins> Configuration Optionsのプラグイン設定でポイントしていました、gradleが見つかり、適切に機能しました。

これはデバッグするのが難しい問題であり、これにより誰かが時間を節約できることを願っています。

65

解決策Mastering_the_Object指摘されたのは、私からもうまくいきました。
JenkinsにGradleプラグインをインストールするだけでは不十分です。以下にもアクセスする必要があります。
Jenkins-> Manage Jenkins-> Configure Jenkins-> Configure system。
「Gradle Installations」の下に名前を入力し(プロジェクト構成にバージョンとして表示されます)、「Install automatic」をチェックしてバージョンを選択します。次に、プロジェクト構成でその「Gradle version」を選択できます。

20
pad

JenkinsなどのCIマシンでGradleを実行する場合、Gradle Wrapperを使用するのが最も便利です。

開発マシンで、ルートプロジェクトディレクトリに立ち、実行します

gradle wrapper

次に、結果のファイルをソース管理システムにチェックインします。その後、Gradleのバージョンを変更する必要がある場合、Jenkinsサーバーに何もインストールする必要はありません。次のようにJenkinsジョブを設定するだけです:

enter image description here

Gradle User Guide からの引用:

ラッパーをプロジェクトと一緒に配布することにより、Gradleを事前にインストールしなくても誰でも作業できます。さらに良いことに、ビルドのユーザーは、ビルドが動作するように設計されたGradleのバージョンを使用することが保証されています。もちろん、これはサーバー上の構成を必要としないため、継続的な統合サーバー(つまり、プロジェクトを定期的に構築するサーバー)にも最適です。

13
Jolta

Gradleラッパーを使用してこのエラーが発生していましたが、壊れたビルドを次のように修正できました:

  1. Jenkinsの管理->グローバルツール設定-> Gradle-> Gradleの追加に移動し、名前を付けます
  2. Jenkins->(ジョブ)->構成->ビルドに移動し、「Gradleの呼び出し」を選択して、Gradleバージョンを(デフォルト)から名前付きバージョンに変更します
12
Matt Bonness

Jenkinsはgradle実行可能ファイルを見つけることができません。 gradle wrapperが動作するようにしたことはありません。次の手順に従ってください。

  • Gradleをダウンロード( http://gradle.org/downloads )、
  • / usr/local/lib/gradleなどに解凍します。
  • / etc/profileを開き、次の2行を追加します。
  • エクスポートGRADLE_HOME =/usr/local/lib/gradle
  • export PATH = $ PATH:$ GRADLE_HOME/bin

my jenkins installation で機能します。

追伸私はこの古い質問に答えます。なぜなら、jenkinsでgradleをセットアップするときの一般的な問題だからです。私は以前、gradleラッパーを成功させることなく機能させるために時間を費やしました。

1
Skarab

ここで@Skarabと他の多くのソリューションの両方を使用して、機能させました。

Gradleをダウンロードし( http://gradle.org/downloads )、たとえば/ usr/local/lib/gradleに展開し、/ etc/profileを開いて、次の2行を追加します。export GRADLE_HOME =/usr/local/lib/gradle export PATH = $ PATH:$ GRADLE_HOME/bin

次に、Jenkinsの管理>システムの構成> Gradleで、GRADLE_HOMEを定義し、そのgradleインストールに名前を付けました

次に、プロジェクトの{これはバグかもしれません}、gradleのバージョンをデフォルトから上で定義したものに変更します

1
kakoma

他の人が指摘したように、これはJenkinsがgradle実行可能ファイルを見つけることができないためです。

公開されたソリューションはどれもうまくいきませんでしたが、ビルドスレーブのビルドアカウントの.bashrcで設定されたパスにgradle bin dirを追加することで問題を修正できました。 .profileの変更に失敗し、jenkinsノード構成でのPATHの設定も失敗しました。

一部の投稿では、ツールメニューでgradleパスを設定することを提案していますが、そこにはgradleエントリもありませんでした(おそらく、gradleプラグインのリグレッション/デザイン変更が原因ですか?)。

いずれにせよ、私が見つけた最良のテスト(ビルドの再実行と失敗の監視以外)は、sshでenvを実行することでした。

ssh <Host> env

そして、そのように定義されたPATH変数を確認します。 gradleがそのパスにない場合、おそらくjenkinsから実行することはできません。

0
rcreswick