1. 概要

このチュートリアルでは、Mavenビルドツールのコアプラグインの1つであるresourcesプラグインについて説明します。

その他のコアプラグインの概要については、この記事を参照してください。

2. プラグインの目標

リソースプラグインは、入力リソースディレクトリから出力ディレクトリにファイルをコピーします。このプラグインには3つの目標があり、リソースと出力ディレクトリの指定方法のみが異なります。

このプラグインの3つの目標は次のとおりです。

  • resources –メインソースコードの一部であるリソースをメイン出力ディレクトリにコピーします
  • testResources –テストソースコードの一部であるリソースをテスト出力ディレクトリにコピーします
  • copy-resources –任意のリソースファイルを出力ディレクトリにコピーします。入力ファイルと出力ディレクトリを指定する必要があります

pom.xmlresourcesプラグインを見てみましょう。

<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にあります。