私は現在、pom.xmlファイルに以下を含む既存のプロジェクトに取り組んでいます:
<resources>
<resource>
<filtering>false</filtering>
<directory>src</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
基本パスに、プロパティファイルを含むプロパティと呼ばれるディレクトリがあります。 srcディレクトリのproperties /の下に含まれるすべてのプロパティファイルをパッケージ化するときにコピーします(そうしないと、設定ファイルが見つからないためプログラムがクラッシュします)。
だから私の質問は:
Mavenで、srcディレクトリの下にないリソースファイルを含めるにはどうすればよいですか?
私はこれを試してみましたが、うまくいかないようです:
<resources>
<resource>
<filtering>false</filtering>
<directory>src</directory>
<includes>
<include>**/*.properties</include>
<include>../properties/**</include>
</includes>
</resource>
</resources>
ご協力いただきありがとうございます。
ファイル構造が次のような場合: Standard Directory Layout
次に、リソース要素を追加する必要はありません。 Mavenは、[default/src/main/resourcesフォルダーにあるすべてのファイルとフォルダーをビルドフォルダーにコピーし、コンパイル済みクラスパスファイルのルートに配置します。
たとえば、configuration.propertiesというファイルが/src/main/resources/configuration.properties
にある場合、mvn clean compile
を実行すると、このファイルは/target/classes/configuration.properties
にコピーされます。その部分を削除すると、ファイルは必要な場所に配置されます
<resource>
<filtering>false</filtering>
<directory>src</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
プロジェクト構造を変更せずにプロジェクトをantからmavenに移行することにより、ビルドでsourceDirectory testSourceDirectoryを設定し、次のフェーズでmaven-resource-pluginを使用して、目標を実行します。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources01</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<encoding>UTF-8</encoding>
<resources>
<resource>
<directory>${basedir}/src</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources02</id>
<phase>verify</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/build/lib</outputDirectory>
<encoding>UTF-8</encoding>
<resources>
<resource>
<directory>${basedir}/target/</directory>
<include>*.jar</include>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
ソースから宛先にすべてをコピーするために、私は次を使用しました
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/static/</outputDirectory>
<resources>
<resource>
<directory>${basedir}/gui/build/</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>