功能:主要用于打包资源文件,默认情况下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. Navicat for MySQL连接MYSQL出错,错误代码1045的解决方法

    Navicat for MySQL连接MYSQL

  2. java中使用二重循环打印图形

    如图所示:打印沙漏图形 1:因为外层循环控制图形行数,所以首先判断这四个选项能否循环五次 2:以上四个循环的表达式都能循环五次,我们从内层循环入手. A:int i=0;i<5;i++ 当i=1 ...

  3. java 22 - 13 多线程之解决线程安全问题的实现方式2

    上一章说了,解决线程安全问题的实现方式1是使用同步代码块 同时也知道了,同步代码块的锁对象是任意对象:(Object obj ;  Demo d;)这些都行 那么,现在来说解决线程安全问题的实现方式2 ...

  4. codevs[1300]文件排版

    Description 写电子邮件是有趣的,但不幸的是经常写不好看,主要是因为所有的行不一样长,你的上司想要发排版精美的电子邮件,你的任务是为他编写一个电子邮件排版程序. 完成这个任务最简单的办法是在 ...

  5. NOIP2015 子串

    #149. [NOIP2015]子串 有两个仅包含小写英文字母的字符串 AA 和 BB. 现在要从字符串 AA 中取出 kk 个互不重叠的非空子串,然后把这 kk 个子串按照其在字符串 AA 中出现的 ...

  6. bzoj1787 [Ahoi2008]Meet 紧急集合

    1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 2272  Solved: 1029 [Submi ...

  7. JS常用方法函数整理

    1.document.write("");为输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4. ...

  8. DINIC网络流+当前弧优化

    DINIC网络流+当前弧优化 const inf=; type rec=record s,e,w,next:longint; end; var b,bb,d,q,tb:..] of longint; ...

  9. Broadmann area (wiki)

    Source: https://en.wikipedia.org/wiki/Brodmann_area Lateral surface Medial serface Areas 3, 1 & ...

  10. AngularJS中的事件

    欢迎大家指导与讨论 : ) 前言  Angular的作用域在本质上是分层次的(有的住户在低层, 有的住户在高层), 它们可以通过父子关系很自然地进行沟通.但通常, 这种沟通是单向的(父->子的单 ...