Jenkinsは、ジョブがMaven 2/3プロジェクトの場合や、フリースタイルのプロジェクトの場合に環境変数を管理しているようです。フリースタイルのプロジェクトでJenkinsが環境変数でMavenリソースをフィルタリングしない
私のテストを教えてあげてください。
それはmyfile.xml
src/main/resources
に、含まれています(デフォルトMaven原型によって例えば生成された)単純なJava 1.6プロジェクトは、次のようになっているプロジェクト
:私のpom.xml
で
<foo>
<bar>${project.version}</bar>
<bar>${foo.bar}</bar>
</foo>
、私はMavenにこのディレクトリをフィルタリングするよう依頼します:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
今、Windows環境としてfoo.bar
プロパティを定義します(42
に相当)。ジェンキンス管理ページでシステム情報で
、私は環境変数セクションで、この変数を参照してください。
テスト
1私はジェンキンスの新しい "Mavenの2/3プロジェクト" を作成し、基本構成を設定:JavaとMavenのバージョンは、Mavenのゴール(clean package
)。 私はこの仕事を実行し、そして最後に、私は次のようmyfile.xml
取得:この場合
<foo>
<bar>1.0-SNAPSHOT</bar>
<bar>42</bar>
</foo>
を、両方の変数がMavenので濾過しました。
テスト2
私はジェンキンスに新しい「フリースタイル・ソフトウェア・プロジェクト」を作成し、1つのビルドステップ、トップレベルのMavenのターゲットを追加することにより、テスト1と同一の構成を設定します。 同じMavenコマンドが使用されます。つまり、clean package
です。ビルドが完了すると、myfile.xml
は次のようになります。ビルドはフリースタイルプロジェクトに基づいている場合
<foo>
<bar>1.0-SNAPSHOT</bar>
<bar>${foo.bar}</bar>
</foo>
だから、明らかに、環境変数foo.bar
は考慮されていません。
私の質問:このような動作が必要な理由はありますか?それともジェンキンスのバグですか? (Windows 2003のサーバーにインストールされている)
ジェンキンスv1.430、Mavenの2.0.9やMaven 2.2.1(同じ動作)、Javaの1.6