在使用maven開發的項目中,有時候需要在打包時根據環境的不同復制不同目錄下的文件,通常是配置文件。
apache提供了maven-resources-plugin可以復制在指定的maven生命周期中復制文件,如下示例配置
1 <plugin> 2 <artifactId>maven-resources-plugin</artifactId> 3 <version>3.0.2</version> 4 <executions> 5 <execution> 6 <id>copy-resources</id> 7 <!-- insert here the phase you need --> 8 <phase>validate</phase> 9 <goals> 10 <goal>copy-resources</goal> 11 </goals> 12 <configuration> 13 <outputDirectory>${basedir}/src/main</outputDirectory> // 目標文件夾 14 <resources> 15 <resource> 16 <directory>${project.parent.basedir}/basic/src/main</directory> // 源文件夾 17 <includes> 18 <include>basic*.proto</include> // 按文件名篩選要復制的文件 19 </includes> 20 <filtering>true</filtering> 21 </resource> 22 </resources> 23 </configuration> 24 </execution> 25 </executions> 26 </plugin>
同樣,配置了clean插件后可以在執行Maven的clean操作時按配置清理文件
1 <plugin> 2 <artifactId>maven-clean-plugin</artifactId> 3 <version>3.1.0</version> 4 <configuration> 5 <failOnError>false</failOnError> 6 <filesets> 7 <fileset> 8 <directory>${basedir}/src/main</directory> // 目標文件夾 9 <includes> 10 <include>**/*.proto</include> // 按文件名篩選要清理的文件 11 </includes> 12 <excludes> 13 <exclude>user*.proto</exclude> // target文件夾中對應的要清理的文件 14 </excludes> 15 <followSymlinks>false</followSymlinks> 16 </fileset> 17 </filesets> 18 </configuration> 19 </plugin>