私は、AntビルドからMavenへの変換処理中のエンタープライズアプリケーションを持っています。ほとんど完全に変換されています。これは私が直す必要がある最後のものです。アプリケーションは、2つのWARを含むEARファイルとしてパッケージ化され、アプリケーションのコア機能のすべてを提供するJARモジュールを備えています。Maven JARプラグインにリソースが含まれていないのはなぜですか?
私はFreemarkerテンプレートライブラリを使用して、アプリケーションから送信された自動メールのメッセージ本文を生成しています。 Freemarkerは* .ftlテンプレートファイルがクラスパス上に存在する必要があります。これは、1つのWARや他のWARに固有のコアアプリケーションの機能であるため、JARに入れる必要があります。
JARを定義するMavenのモジュールは以下のPOMがあります
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../../pom.xml</relativePath>
<groupId>com.company.project</groupId>
<artifactId>projectName</artifactId>
<version>1.8.0</version>
</parent>
<artifactId>core</artifactId>
<packaging>jar</packaging>
<name>Core Application</name>
<profiles>
<!-- snip -->
</profiles>
<dependencies>
<!-- snip -->
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.ftl</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<!-- snip -->
</plugins>
</build>
</project>
* .ftlファイルは、テンプレート/内のサブディレクトリ内のいくつかと、SRC /メイン/リソース/テンプレート/にあります。 src/main/resourcesには、いくつかの.propertiesといくつかの.xmlファイルがあります。いくつかはルートにあり、いくつかはディレクトリ構造の下にあります。
このモジュール(または親)でパッケージフェーズを実行すると、ビルドプロセスの一部として作成されたターゲット/ classesディレクトリにテンプレートディレクトリが含まれます。テンプレートディレクトリには* .ftl、*がすべて含まれます。 xml、および* .propertiesファイルを適切なディレクトリ構造で置き換えます。私が手動でこのディレクトリをJAR化すると、すべてが完全に機能します。
maven-jar-pluginがJARを作成するときにXMLファイルとプロパティファイルが含まれていますが、テンプレートディレクトリはJARファイルから完全に除外されており、その内容はどこにも見つかりません。
上記のように、**/*。ftlを明示的に試してみました。違いはありません。私は "includes"タグ全体を除外することができ、まったく同じ動作をします。
私はMaven 3.0.5とmaven-jar-plugin 2.4を使用しています。