2011-09-08 1 views
11

現在のTeamCity CIビルドを置き換えるためにJenkinsを設定しています。パス変数をジョブシェルに追加する方法

フリースタイルのソフトウェアプロジェクトを作成して、シェルスクリプトを実行できるようにしました。 シェルスクリプトはmvnコマンドを実行します。

しかし、 'mvn'コマンドが見つからないと不平を言ってビルドに失敗します。

これは、Jenkinsが別のシェルでビルドを実行しているため、これはMavenがパスしていないためです。

私の質問は、私のシェルスクリプトで 'mvn'が見つかるようにパスをどのように追加するのですか?私は周りを見回しましたが、適切な場所がどこにあるかは分かりません。

お時間をいただきありがとうございます。

答えて

5

シェルコマンドを入力できるJenkinsジョブ設定でパスをエクスポートして設定することで、これを解決しました。だから、シェルスクリプトを実行する前に環境変数を設定して、扱います。

3

いくつかの可能な解決策:

  • あなたは、あなたのMavenのインスタンスへの絶対パスでジェンキンスシステムの設定でグローバルな環境変数を設定して、自分の中でこれを使用する絶対パス
  • でMavenを呼び出すことができますスクリプトコール(インラインシェルスクリプトを使用している場合、それらが呼び出されたスクリプトに置き換えられているかどうかわからない場合は、テストする必要があります)
  • mavenプロジェクトを使用して、jenkinsシステム設定でmavenインスタンスを設定します

ps:通常、/bin/shがJenkinsから選択されています。 bashでは、グローバル環境変数を設定する場合に備えて、jenkinsシステム設定でこれを設定できます。

0

ダグの提案のもう1つの選択肢は、各スレーブサーバーで1つのバージョンのMavenだけを使用している場合、どちらかを実行できることです。 * PATH = $ {PATH}を追加してください: * mvnを/ usr/binにmvnしてください。 sudo ln -s/usr/bin

私は現時点でJenkinsのボックスにはいませんが、私はあなたが望むならもっと詳細な例を見つけることができます。

0

Jenkinsはデフォルトでshを使用していますが、bashでは使用しません。 これは私の初めてのジェンキンMavenジョブの定義です。私はまた、コマンドラインから実行するためのsoem regular maven命令に続き、〜/ .bashrcをM2_HOME、M2、PATHで更新しようとしましたが、ジェンキンはshとbashを使わなかったので、仕事はしません。それから、私はジェンキンに組み込まれているより簡単で良い方法があることを知りました。

mavenをインストールした後、私はmavenインストールをjenkinsで設定することになっていました。ジェンキンスであなたのMavenのインストールを設定するには

: - 、Mavenの下で>設定システム

  • 「Mavenのインストールをクリックし

    1. ログインジェンキンスにWebコンソール
    2. クリックはジェンキンスを管理します。 .. "ボタン
    3. a。名前をつける b。とMVN_HOMEは、例えば、あなたがMavenをインストールした場所へのパスを設定し、「/usr/local/apache-maven/apache-maven-3.0.5」
    4. 下の[保存]ボタンをクリックします

    でジョブを定義します。 Mavenの対象

    1. 編集あなたの仕事
    2. クリックあなたはMavenのインストールに指定した名前を入力し、Mavenのバージョンに
    3. を "ビルドステップを追加"(上記のステップ#4)
    4. クリーンあなたはenvInject pluginを使用することができます
  • 1

    をインストールするようないくつかの目標を設定します。それは非常に強力です。

    rbenvのインストールに使用します。そして、あなたの現在の仕事に環境変数を注入することができます。

    関連する問題