私のプロジェクトでproperties
ディレクトリがあります:ディレクトリ内のファイルをループ処理する方法と、各ファイル名に基づいていくつかのタスクを実行する方法はありますか?
properties
- project_dev.properties
- project_test.properties
- project_prod.properties
- project_other.properties
異なるenviromentsのためのいくつかの異なる値を定義します。 template
ディレクトリもあります。このディレクトリには、プレースホルダ付きの設定ファイルテンプレートがいくつか含まれています。
私がしたいのは、すべてのファイルをproperties
にループし、それぞれをtemplate
ディレクトリに結合して、ファイル名に基づいて異なるディレクトリの下にある最終設定ファイルを生成することです。
だから、次のようになります。
target
- configurations
- dev
- ... some files
- test
- ... some files
- prod
- ... some files
- other
- ... some files
私が今やっていることはmaven-resources-plugin
を使用して、ファイルごとにいくつかのexecution
Sを定義して、ハードコードされた名前です。
ように見えます:あなたは、私はファイルごとにexecution
ブロックをコピーしていますので、わずかな違いを持つ多くの重複コードがあるだろう見ることができます
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<!--- for dev ---->
<execution>
<id>dev-filter</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<outputDirectory>${basedir}/target/conf/dev</outputDirectory>
<useDefaultDelimiters>false</useDefaultDelimiters>
<resources>
<resource>
<directory>${basedir}/conf/template</directory>
<filtering>true</filtering>
<includes>
<include>channel/*</include>
<include>rule-config/*</include>
<include>server/*.properties</include>
</includes>
</resource>
</resources>
<delimiters>
<delimiter>${*}</delimiter>
</delimiters>
<filters>
<filter>${basedir}/properties/project_dev.properties</filter>
</filters>
</configuration>
</execution>
<!--- for prod ---->
<execution>
<id>prod-filter</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<outputDirectory>${basedir}/target/conf/prod</outputDirectory>
<useDefaultDelimiters>false</useDefaultDelimiters>
<resources>
<resource>
<directory>${basedir}/conf/template</directory>
<filtering>true</filtering>
<includes>
<include>channel/*</include>
<include>rule-config/*</include>
<include>server/*.properties</include>
</includes>
</resource>
</resources>
<delimiters>
<delimiter>${*}</delimiter>
</delimiters>
<filters>
<filter>${basedir}/properties/project_prod.properties</filter>
</filters>
</configuration>
</execution>
<!--- for test --->
...
。
物事を簡単にするソリューションはありますか?私はproperties
の下にファイルをループする方法を見つけようとし、それぞれのためにfilter
タスクを実行しますが、それを行う方法がわかりません。このような目的のために