私はジェンキンスでMavenの仕事をしています。実際のビルド ステップの前に、「シェルの実行」ビルド前ステップがあります。そのシェルで、変数を設定しました:
REVISION=$(cat .build_revision)
「目標とオプション」の Maven ビルド ジョブでその変数を使用したいと思います。
clean install -Drevision=${REVISION}
しかし、それはうまくいきません!"Drevision" は、${REVISION} の実際の値ではなく、"${REVISION}" に設定されています。出力:
Executing Maven: -B -f /home/gerrit/.jenkins/jobs/<job_name>/workspace/pom.xml clean install -Drevision=${REVISION}
Jenkins 環境変数で動作します。
clean install -Dbuild=${BUILD_NUMBER}
「Dbuild」を実際のビルド番号に設定します。出力:
Executing Maven: -B -f /home/gerrit/.jenkins/jobs/<job_name>/workspace/pom.xml clean install -Dbuild=54
私の質問:Mavenの「目標とオプション」でシェル変数を使用する方法??
編集:
ビルド前のシェルの後にJenkins EnvInject Pluginを使用して「環境変数を注入」しようとしましたが、ビルド後のシェルなどから変数にアクセスできるようになりましたが、Maven の「目標とオプション」ではまだ使用できません。
次に、EnvInject プラグインを使用して「ビルド プロセスに環境変数を注入する」を設定することができます。これにより、これらの変数が Maven の「目標とオプション」で実際に使用できるようになりますが、これらの変数は SCM チェックアウトの直後、つまりビルド前のステップの前に設定されます。式の評価をサポートしていません。