Maven复制、清理文件插件使用
在使用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>