功能:主要用于打包资源文件,默认情况下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. jquery实现输入框聚焦,键盘上下键选择城市

    在最近有个项目中 需要实现当文本框聚焦的时候,可以键盘上下键选择内容,按enter键的时候,把内容传到输入框中,如图所示: 实现代码如下: /** *输入框聚焦,键盘上下键选择城市 */ ;(func ...

  2. 新闻发布系统<分页>

    分页实现: 实现数据的分页显示,需要以下几个关键步骤: ①确定每页显示的总页数 ②计算显示的总页数 ③编写SQL语句 实现效果如图所示: 当点击下一页时,地址栏地址为?pageIndex=2 1.创建 ...

  3. wamp5设置外网访问方法

    1.安装完Wamp5之后,从外网访问网页时存在无法访问问题. 2.phpmyadmin外网没法访问 1.解决办法: 打开wamp的托盘图标(右下角),找到"Config files" ...

  4. Netty系列之Netty 服务端创建

    1. 背景 1.1. 原生NIO类库的复杂性 在开始本文之前,我先讲一件自己亲身经历的事:大约在2011年的时候,周边的两个业务团队同时进行新版本开发,他们都需要基于NIO非阻塞特性构建高性能.异步和 ...

  5. 读Java面向对象编程(孙卫琴)

    2.1创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元. 本章包含两个Java源文件:Do ...

  6. MVC 数据验证【转】

    [转自]http://www.cnblogs.com/dozer/archive/2010/04/12/MVC-DataAnnotations.html 作者Dozer 今天在这里给大家介绍一下MVC ...

  7. 快速编写代码zencode

    #是 id .是class $是数字 {}是标签中内容 *个数 ^上一级

  8. iOS多线程杂论

    iOS多线程的分布 (1) NSThread (2) NSOperation (3) GCD 现在对下面三个进行一个个的分析,希望那里说得不对的地方希望简友们帮我指点一二. 1,NSThread 优点 ...

  9. SQL80001: Incorrect syntax near ':'

    原文连接:http://geekswithblogs.net/tonyt/archive/2010/03/05/138363.aspx   SQL80001: Incorrect syntax nea ...

  10. js checkbox 选中判断

    var isSelect = ""; isSelect = $("#tblImgList" + " input[type='checkbox']&qu ...