2017-03-14 10 views
0

gradleスクリプトを呼び出して、ソースから.warファイルを作成するJenkinsジョブがあります。Jenkins Publish Over SSH Pluginファイル名変数

war { 
    baseName = 'Geo' 
    version = '1.0.5' 
} 

このファイルには、「オーバーSSHプラグインを公開」を使用してWildflyサーバートラフSSHにコピーして展開されます:build.gradle使用のバージョン番号ので

gradle warコマンドは、名前Geo-1.0.5.warでファイルを生成します。

戦争のファイル名の形式がGeo- $ gradle_version .warのようなものであることをプラグインに伝えることはできますか?

あなたはジェンキンス内の次の「ソースファイル」フィールドに (?)ヘルプアイコンをクリックする場合、これは文書化されて

答えて

1

:Antのファイルセットなどのために含まれるの

文字列は、コンマで区切ったリストです。 **/*.jar
(AntマニュアルのPatternsを参照)。

あなたのケースでは、**/Geo-*.warをソースパターンとして使用できます。

plugin wiki pageSource FilesExamplesセクションのスクリーンショットにも、リンクされている「公開...」ドキュメントに記載されています。この回答へのあなたのコメントで


、あなたは、ファイル名がアップロードする「ジオ$のgradle_version.warのようなもの」であることを伝えたいのではなく、正確なファイル名を使用しないことを言及しますスクリプトはSSHホスト上で実行されます。

これは、ファイル名を決定し、EnvInject Pluginを使用して環境変数としてエクスポートするシェル実行ステップを追加することで実行できます。例えば:そして

f=$(basename `find . -name 'Geo-*.war'`) 
echo WAR_FILENAME=${f} > env.properties 

、注入する環境変数はenv.propertiesに設定し、そのパスにステップ用いて、WAR_FILENAME値は、後続のステップで使用するために利用可能なビルド環境に追加されます。

SSH公開手順の[実行コマンド]フィールドでは、${WAR_FILENAME}を使用して、アップロードされた正確なファイル名を参照できます。

+0

ご返信ありがとうございます。ワイルドカードは回避策になる可能性がありますが、SSHコピー後に実行されるスクリプトに正確な戦闘名を渡す方法を探していました。 – sgargel

+0

あなたはそれをあなたの質問に明記しておくべきです。私は私の答えに追加しました。 –

関連する問題