功能:主要用於打包資源文件,默認狀況下maven只打包src/main/resource下的資源,經過
一、設置build_resources
二、使用build-helper-maven-plugin插件
三、使用maven-resources-plugin插件
均可以自定要打包的資源
首先,來看下MAVEN項目標準的目錄結構:java
通常狀況下,咱們用到的資源文件(各類xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包時,maven能把這些資源文件打包到相應的jar或者war裏。網絡
有時候,好比mybatis的mapper.xml文件,咱們習慣把它和Mapper.java放一塊兒,都在src/main/java下面,這樣利用maven打包時,就須要修改pom.xml文件,來把mapper.xml文件一塊兒打包進jar或者war裏了,不然,這些文件不會被打包的。(maven認爲src/main/java只是java的源代碼路徑)。網絡上有不少方法,我大概試了下,幾種方法均可以,能夠任選一種便可。mybatis
方法1,其中**/*這樣的寫法,是爲了保證各級子目錄下的資源文件被打包。app
- <build>
- <finalName>test</finalName>
- <!--
- 這樣也能夠把全部的xml文件,打包到相應位置。
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>**/*.properties</include>
- <include>**/*.xml</include>
- <include>**/*.tld</include>
- </includes>
- <filtering>false</filtering>
- </resource>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.properties</include>
- <include>**/*.xml</include>
- <include>**/*.tld</include>
- </includes>
- <filtering>false</filtering>
- </resource>
- </resources>
- </build>
方法2,利用build-helper-maven-plugin插件maven
- <build>
- ...
- </plugins>
- ...
- <!--
- 此plugin能夠用
- 利用此plugin,把源代碼中的xml文件,
- 打包到相應位置,這裏主要是爲了打包Mybatis的mapper.xml文件
- -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.8</version>
- <executions>
- <execution>
- <id>add-resource</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>add-resource</goal>
- </goals>
- <configuration>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.xml</include>
- </includes>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- ...
- </plugins>
- ...
- </build>
方法3,利用maven-resources-plugin插件ui
- <build>
- ...
- </plugins>
- ...
- <!--
- 此plugin能夠用
- 利用此plugin,把源代碼中的xml文件,打包到相應位置,
- 這裏主要是爲了打包Mybatis的mapper.xml文件
- -->
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.5</version>
- <executions>
- <execution>
- <id>copy-xmls</id>
- <phase>process-sources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${basedir}/target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>${basedir}/src/main/java</directory>
- <includes>
- <include>**/*.xml</include>
- </includes>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- ...
- </plugins>
- ...
- </build>