私はMavenが初めてで、リソースセクションに出くわしました。Maven プロジェクト記述子 (バージョン 4.0) のリファレンスには、「この要素は、プロジェクトまたは単体テストに関連付けられたすべてのクラスパス リソースを記述します」(リンク) と記載されています。しかし、この説明は私には理解できません/私にとっては抽象的なようです。クラスパス リソースを説明する必要があるのはなぜですか? プロジェクトのライフサイクルにどのように影響しますか?
マティアス
通常、jar にパッケージ化されるリソースを含む src/main/resources フォルダーがあります。上記のフォルダーにあるこのすべては、自動的に jar にパッケージ化され、getResource を介してアクセスできます... pom のリソース領域を介して、ファイルを src/main/resources から target/classes フォルダーにフィルターできます。
<project>
...
<name>My Resources Plugin Practice Project</name>
...
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
...
</resources>
...
</build>
...
</project>
Maven のライフサイクルはこれによる影響を受けません。
この機能により、たとえば、.properties ファイル内で Maven 変数を使用できます。.properties があるディレクトリを<resources>
セクションで宣言するだけで、${project.name} などを使用できるようになります。
pom.xml:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
バージョンのプロパティ:
version=${pom.version}
timestamp=${timestamp}
(${timestamp} は Maven Build Number プラグインで作成されます)。