4

antを使用して次のプロジェクトバージョンを構築することには、あまりにも多くのルーチンがあります。ルーチンはいくつかのプロパティファイルにあり、antタスクを実行する前に編集する必要があります。ビルド(夜間のものを含む)を作成するシステムとしてJenkinsを調べましたが、プロパティの変更に問題があります。

ビルドする前にJenkins構成にパラメーターを入力して、それらがantに渡されるようにすることは可能ですか(はいの場合、どうすればよいですか)?

私が本当に意味しているのは、次のスキーマです(手動ビルドで使用しました)。

  • ビルドバージョン、src宛先、新しいビルドについて通知する電子メールなどに関するデータを含む2つのプロパティファイルがあります。

  • 対応するプロパティのキーはAntタスクで使用され、これらのプロパティはビルド前に手動で変更されます。

  • 一部のプロパティはJavautilによって読み取られ、ビルド中に独自の部分に使用されます。

  • build.xmlにインポートされた3つまたは4つのantXMLもあり、これらのxmlは前述のファイルからプロパティも読み取ります。

私がやりたいことは:

  • Jenkinsの主要なプロパティを変更する

  • プレスビルドプロジェクト

  • 私のデータはプロパティファイルのデータを上書きするか、antvars値としてantのタスクに直接渡されます。

  • その結果、対応する通知を含む新しいビルドを受け取ります(antを介して作成されます)

Jenkinsを介してそのようなスキーマを機能させるメカニズムはありますか?

前もって感謝します。

4

2 に答える 2

9

Jenkinsでは、パラメーター化されたビルド機能を使用して、ビルドに置き換える必要のあるパラメーターを指定できます。

たとえば、というパラメータを指定し、server[今すぐビルド]をクリックしてと入力するtestと、と呼ばれるアクセス可能な環境変数を使用してビルドが実行されます${server}

次に、「Invoke Ant」ビルドステップで、を押すAdvanced...と、「Properties」フィールドが表示されます。ここに入力できますmy.ant.property=${server}
これは、を呼び出すのと同じでant -Dmy.ant.property=${server}、に展開されant -Dmy.ant.property=testます。

于 2012-08-16T10:47:36.863 に答える
2

別のオプション:このEnvプラグインを使用して、ビルドのスコープの環境変数を設定します。したがって、使用しているプロパティが環境変数であるか、それらとして設定できる場合は、これを使用する必要があります。ビルドスクリプトの変更には多少の労力が必要になる場合がありますが、それは良いオプションになる可能性があります。

Q:ビルドプラグインをパラメータ化したのに、なぜこれを使用するのですか?

A:複数の選択肢がある場合、パラメーター化されたビルドプラグインは人間の操作を必要とするためです。たとえば、リリース1、リリース2、またはテストブランチ用にビルドします。

Envプラグインでは、選択ごとにプロパティを1回設定してから、それぞれにそれぞれのジョブを作成できます。次に、ジョブをスケジュールするだけで、人的要因を排除できます。

于 2012-08-17T09:01:05.870 に答える