Mavenリソースプラグイン
1. 概要
このチュートリアルでは、Mavenビルドツールのコアプラグインの1つであるresourcesプラグインについて説明します。
その他のコアプラグインの概要については、この記事を参照してください。
2. プラグインの目標
リソースプラグインは、入力リソースディレクトリから出力ディレクトリにファイルをコピーします。このプラグインには3つの目標があり、リソースと出力ディレクトリの指定方法のみが異なります。
このプラグインの3つの目標は次のとおりです。
- resources –メインソースコードの一部であるリソースをメイン出力ディレクトリにコピーします
- testResources –テストソースコードの一部であるリソースをテスト出力ディレクトリにコピーします
- copy-resources –任意のリソースファイルを出力ディレクトリにコピーします。入力ファイルと出力ディレクトリを指定する必要があります
pom.xmlのresourcesプラグインを見てみましょう。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
...
</configuration>
</plugin>
このプラグインの最新バージョンはここにあります。
3. 例
ディレクトリinput-resourcesからディレクトリoutput-resourcesにリソースファイルをコピーし、拡張子.pngで終わるすべてのファイルを除外するとします。 。
これらの要件は、この構成で満たされます。
<configuration>
<outputDirectory>output-resources</outputDirectory>
<resources>
<resource>
<directory>input-resources</directory>
<excludes>
<exclude>*.png</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
この構成は、resourcesプラグインのすべての実行に適用されます。
たとえば、このプラグインの resourcesゴールがコマンドmvnresources:resources で実行されると、PNGを除くinput-resourcesディレクトリのすべてのリソースファイルは、output-resourcesにコピーされます。
デフォルトでは、resourcesゴールはMavendefaultライフサイクルのprocess-resourcesフェーズにバインドされているため、このゴールとそれ以前のすべてのフェーズを実行できます。コマンドmvnprocess-resourcesを実行します。
指定された構成には、trueの値を持つfilteringという名前のパラメーターがあります。 フィルタリングパラメータは、リソースファイルのプレースホルダー変数を置き換えるために使用されます。
たとえば、POMにプロパティがある場合:
<properties>
<resources.name>Baeldung</resources.name>
</properties>
リソースファイルの1つには次のものが含まれています。
Welcome to ${resources.name}!
次に、変数は出力リソースで評価され、結果のファイルには次のものが含まれます。
Welcome to Baeldung!
4. 結論
この簡単な記事では、 resources プラグインについて説明し、プラグインの使用とカスタマイズについて説明しました。
このチュートリアルの完全なソースコードは、GitHubのにあります。