前言
一般情况下,我们用到的资源文件(各种xml,properites,js文件等)都放在资源目录下面,利用maven打包时,maven能把这些资源文件打包到相应的目录里。
Maven内置变量说明
- ${basedir} 项目根目录
- ${project.build.directory} 构建目录,缺省为target
- ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
- ${project.packaging} 打包类型,缺省为jar
- ${project.xxx} 当前pom文件的任意节点的内容
下面我们开始配置Maven
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-webapp</id>
<phase>process-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>
${basedir}/target/sino-biz-web
</outputDirectory>
<resources>
<resource>
<directory>
${basedir}/src/main/webapp
</directory>
<includes>
<include>**/**.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- 以下是自动打包class文件,可不配置,开发时可能会导致服务器重启 -->
<!--
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-java</id>
<phase>process-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>
${basedir}/target/sino-biz-web/WEB-INF/classes
</outputDirectory>
<resources>
<resource>
<directory>
${basedir}/target/classes
</directory>
<includes>
<include>**/*.class</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
-->
<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/sino-biz-web/WEB-INF/classes
</outputDirectory>
<resources>
<resource>
<directory>
${basedir}/src/main/resources
</directory>
<includes>
<include>**/**.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
通过以上配置即可实现自动打包资源文件到指定目录。