功能:主要用于打包资源文件,默认情况下maven只打包src/main/resource下的资源,通过

1、设置build_resources
2、使用build-helper-maven-plugin插件
3、使用maven-resources-plugin插件
都可以自定要打包的资源



首先,来看下MAVEN项目标准的目录结构:

一般情况下,我们用到的资源文件(各种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的源代码路径)。网络上有很多方法,我大概试了下,几种方法都可以,可以任选一种即可。

方法1,其中**/*这样的写法,是为了保证各级子目录下的资源文件被打包。

  1. <build>
  2. <finalName>test</finalName>
  3. <!--
  4. 这样也可以把所有的xml文件,打包到相应位置。
  5. <resources>
  6. <resource>
  7. <directory>src/main/resources</directory>
  8. <includes>
  9. <include>**/*.properties</include>
  10. <include>**/*.xml</include>
  11. <include>**/*.tld</include>
  12. </includes>
  13. <filtering>false</filtering>
  14. </resource>
  15. <resource>
  16. <directory>src/main/java</directory>
  17. <includes>
  18. <include>**/*.properties</include>
  19. <include>**/*.xml</include>
  20. <include>**/*.tld</include>
  21. </includes>
  22. <filtering>false</filtering>
  23. </resource>
  24. </resources>
  25. </build>

方法2,利用build-helper-maven-plugin插件

  1. <build>
  2. ...
  3. </plugins>
  4. ...
  5. <!--
  6. 此plugin可以用
  7. 利用此plugin,把源代码中的xml文件,
  8. 打包到相应位置,这里主要是为了打包Mybatis的mapper.xml文件
  9. -->
  10. <plugin>
  11. <groupId>org.codehaus.mojo</groupId>
  12. <artifactId>build-helper-maven-plugin</artifactId>
  13. <version>1.8</version>
  14. <executions>
  15. <execution>
  16. <id>add-resource</id>
  17. <phase>generate-resources</phase>
  18. <goals>
  19. <goal>add-resource</goal>
  20. </goals>
  21. <configuration>
  22. <resources>
  23. <resource>
  24. <directory>src/main/java</directory>
  25. <includes>
  26. <include>**/*.xml</include>
  27. </includes>
  28. </resource>
  29. </resources>
  30. </configuration>
  31. </execution>
  32. </executions>
  33. </plugin>
  34. ...
  35. </plugins>
  36. ...
  37. </build>

方法3,利用maven-resources-plugin插件

  1. <build>
  2. ...
  3. </plugins>
  4. ...
  5. <!--
  6. 此plugin可以用
  7. 利用此plugin,把源代码中的xml文件,打包到相应位置,
  8. 这里主要是为了打包Mybatis的mapper.xml文件
  9. -->
  10. <plugin>
  11. <artifactId>maven-resources-plugin</artifactId>
  12. <version>2.5</version>
  13. <executions>
  14. <execution>
  15. <id>copy-xmls</id>
  16. <phase>process-sources</phase>
  17. <goals>
  18. <goal>copy-resources</goal>
  19. </goals>
  20. <configuration>
  21. <outputDirectory>${basedir}/target/classes</outputDirectory>
  22. <resources>
  23. <resource>
  24. <directory>${basedir}/src/main/java</directory>
  25. <includes>
  26. <include>**/*.xml</include>
  27. </includes>
  28. </resource>
  29. </resources>
  30. </configuration>
  31. </execution>
  32. </executions>
  33. </plugin>
  34. ...
  35. </plugins>
  36. ...
  37. </build>

Maven_Build_Resources的更多相关文章

随机推荐

  1. HDU 2516 取石子游戏

    Problem Description 1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍.取完者胜.先取者负输出"Secon ...

  2. poj 2278 DNASequnce AC自动机

    地址:http://poj.org/problem?id=2778 题目: DNA Sequence Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  3. js中的冒泡排序以及实现一个数组中得最到最大的数字小例

    这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单. 也就是js中的冒泡排序 冒泡排序 时间复杂度为O(n^2),有两个优点: ...

  4. CF 375B Maximum Submatrix 2[预处理 计数排序]

    B. Maximum Submatrix 2 time limit per test 2 seconds memory limit per test 512 megabytes input stand ...

  5. KSFramework常见问题:Lua脚本热重载,内存状态数据丢失?

    Lua热重载 内存数据在重载后会丢失 KSFramework中,所有的UI Lua脚本是可以重载的.脚本中的一些内存数据,在重载后会丢失,比如: -- 记录一个UI界面被打开了多少次 function ...

  6. [No000032]程序员的年龄天花板

    程序员职业生涯中流行这这样一个定律:35岁定律,那35岁以上的老程序员都干吗去了呢?为了讨论程序员的职业寿命,我们先得给公司或者团队分分类.大概有这么三类: 外包型 项目型 产品型 咱们一一来说一下吧 ...

  7. java 26 - 6 网络编程之 TCP协议 传输思路 以及 代码

    TCP传输 Socket和ServerSocket 建立客户端和服务器 建立连接后,通过Socket中的IO流进行数据的传输 关闭socket 同样,客户端与服务器是两个独立的应用程序 TCP协议发送 ...

  8. css3动画的两种方式transition和@keyframs

  9. HDU 1022 Train Problem I

    A - Train Problem I Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  10. 安装 SQL SERVER 2008 必须使用 "角色管理工具" 错误 的 解决方案 (转)

    刚在服务器(Win2008)上安装SqlServer2008的时候出现了这么一个报错——必须使用“角色管理工具”安装或配置Microsoft .NET Framework 3.5 SP1.一开始以为是 ...