過去にこんな投稿をしていた。。。
Maven ファイルのコピー - Oboe吹きプログラマの黙示録
そして、gradle 使用では、、、
gradle の copy タスク活用 - Oboe吹きプログラマの黙示録
Maven の方、、ビルド前、package や install タスクの前に実行したいということで、見直す!
過去の投稿=Apache Maven AntRun Plugin の方法では、
mvn antrun:run
が実行であり、
パッケージの実行前に起動するなら package の前に、
mvn antrun:run package
インストールの実行前に起動するなら install の前に、
mvn antrun:run install
と実行しなければならない。
Eclipse 実行プラグインで、ものぐさの設定するなら、
こんな感じであろう。
そして、Maven AntRun Plugin もバージョンが上がっており、
(サンプル)
(例)javaソースの場所、aa.bb.cc パッケージに置いた XMLを、
同じパッケージ階層でビルドに含めるためのコピー
<build> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>3.0.0</version> <configuration> <target> <echo message="#### copy files ####"/> <property name="fromDir" value="src/main/java/aa/bb/cc"/> <property name="toDir" value="target/classes/aa/bb/cc"/> <copy file="${fromDir}/SampleMapper.xml" tofile="${toDir}/SampleMapper.xml"/> </target> </configuration> </plugin> </build>
ファイルを1つ1つ指定ではなく、フィルタで、、、
<build> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>3.0.0</version> <configuration> <target> <echo message="#### copy files ####"/> <copy todir="target/classes/aa/bb/cc"> <fileset dir="src/main/java/aa/bb/cc" includes="*.xml"/> </copy> </target> </configuration> </plugin> </build>
Apache Maven AntRun Plugin – Introduction
でも、Apache Maven AntRun Plugin は、antrun:run を動かす必要があるので、
この方法は、敬遠されるであろう。
Maven resources plugin の方法、
Apache Maven Resources Plugin – Introduction
こちらの方法の方が、Maven タスクでよけいな指定をしないで済む
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> </resource> </resources> </build>
元々、src/main/resources 直下に置くものも改めて、全部指定が必要なので注意!!
よく忘れる!