Maven_Build_Resources
功能:主要用于打包资源文件,默认情况下maven只打包src/main/resource下的资源,通过:
1、设置build_resources
2、使用build-helper-maven-plugin插件
3、使用maven-resources-plugin插件
都可以自定义要打包的资源

一般情况下,我们用到的资源文件(各种xml,properties,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,其中*/这样的写法,是为了保证各级子目录下的资源文件被打包。

<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插件

<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-plugins插件

<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>

以下是对maven 插件的说明:

resources:描述工程中资源的位置

<resource> <targetPath>META-INF/plexus</targetPath> <filtering>false</filtering> <directory>${basedir}/src/main/plexus</directory> <includes> <include>configuration.xml</include> </includes> <excludes> <exclude>**/*.properties</exclude> </excludes>
</resource>

targetPath:指定build资源到哪个目录,默认是base directory

filtering:指定是否将filter文件(即build下的filters里定义的*.property文件)的变量值在这个resource文件有效,例如上面就指定那些变量值在configuration文件无效。

directory:指定属性文件的目录,build的过程需要找到它,并且将其放到targetPath下,默认的directory是${basedir}/src/main/resources

includes:指定包含文件的patterns,符合样式并且在directory目录下的文件将会包含进project的资源文件。

excludes:指定不包含在内的patterns,如果inclues与excludes有冲突,那么excludes胜利,那些符合冲突的样式的文件是不会包含进来的。

testResources:这个模块包含测试资源元素,其内容定义与resources类似,不同的一点是默认的测试资源路径是${basedir}/src/test/resources,测试资源是不部署的。

默认情况下,如果没有指定resources,目前认为自动会将classpath下的src/main/java下的.class文件和src/main/resources下的.xml文件放到target里头的classes文件夹下的package下的文件夹里。如果设定了resources,那么默认的就会失效,就会以指定的includes和excludes为准。例如,为了使打包的jar包里头包含.java源文件。

maven之build resources resource 详细介绍相关推荐

  1. SpringMVC+Maven开发项目源码详细介绍

    代码地址如下: http://www.demodashi.com/demo/11638.html Spring MVC概述 Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的 ...

  2. maven生命周期lifecycle和plugins介绍

    一.Maven的生命周期 生命周期的定义:Maven的生命周期就是为了对所有的构建过程进行抽象和统一.在大量项目的构建过程中,Maven总结出了一套高度完善的,易于扩展的生命周期,包括项目的清理,初始 ...

  3. MyBatis详细介绍

    MyBatis基础入门 内容 1.MyBatis介绍 2.MyBatis入门程序 3.MyBatis使用Mapper接口 4.MyBatis之Config文件常用配置 一.MyBatis简介 1 .简 ...

  4. Maven入门-6-Maven的生命周期和核心命令详细介绍

    本篇来介绍Maven的生命周期和前面介绍过几个命令的详细介绍过程.先介绍生命周期,生命周期中不同阶段就包括了一些命令,所以理解了生命周期,再来看看每一个命令的详细使用过程. 1.Maven的生命周期分 ...

  5. IDEA集成maven流程图详细介绍

    前言 最近利用两天时间学习了MyBatis以及maven,避免经典的学过就忘记,我打算做出点总结以便日后复习,当然如果能帮到需要的人也是极好的. 一. 初识maven 1.maven是什么 maven ...

  6. 矩阵元安全多方详细介绍

    第一章 MPC&JUGO 1.概述 大数据时代,海量数据的交叉计算可以为科研.医疗.金融等提供更好支持.许多企业或组织出于信息安全或利益的考虑,内部数据是不对外开放的.形成一个个数据孤岛,数据 ...

  7. Maven使用指南(超详细)

    Maven高级 目标 理解并实现分模块开发 能够使用聚合工程快速构建项目 能够使用继承简化项目配置 能够根据需求配置生成.开发.测试环境,并在各个环境间切换运行 了解Maven的私服 1,分模块开发 ...

  8. SpringMVC详细介绍 zh-Maven高级(5)

    目标 理解并实现分模块开发 能够使用聚合工程快速构建项目 能够使用继承简化项目配置 能够根据需求配置生成.开发.测试环境,并在各个环境间切换运行 了解Maven的私服 1.分模块开发 1) 分模块开发 ...

  9. maven(三)最详细的profile的使用

    文章目录 前言 1. 原理 2. 应用演示 2.1 项目结构 2.2 激活方式 1. 通过maven命令参数 2. 通过pom文件里的activation属性 3. settings.xml中使用ac ...

最新文章

  1. 2.2tensorflow2官方demo
  2. Linux命令之文件处理
  3. beautifulsoup find函数返回值_再端一碗BeautifulSoup
  4. SQL大圣之路笔记——PowerDesigner之新建table、view、proc
  5. python二进制文件 删除尾部数据_在Python中读取和切片二进制数据文件的最快方法...
  6. FD.io VPP对 DPDK的详细配置:绑定网卡,启动VPP
  7. 「leetcode」452. 用最少数量的箭引爆气球【贪心算法】详细图解
  8. geatpy - 遗传和进化算法相关算子的库函数(python)
  9. 有什么软件可以连接到linux系统升级,linux系统和应用程序升级方法
  10. 概要设计说明书的书写
  11. 腾达n318虚拟服务器,腾达N318无线路由器的设置教程
  12. 使用Banner制作轮播图
  13. Python GUI教程:信号、槽、事件
  14. 为powerpc编译mtd-utils工具
  15. vue 创建一个登录界面
  16. Web 压测工具介绍
  17. 国家非专业等级计算机考试大纲,非计算机专业最新计算机等级考试大纲与试卷.doc...
  18. OpenGL(四) 左右手坐标系及基本坐标变换
  19. element-ui 网格_UI备忘单:列表与网格
  20. 2021年N1叉车司机考试及N1叉车司机考试内容

热门文章

  1. pyqt5讲解2:QPushButton,QRadioButton,QCheckBox
  2. boost::hana::int_c用法的测试程序
  3. boost::exception_test::throw_test_exception<T>的测试程序
  4. boost::coroutine2模块实现解析器的测试程序
  5. GDCM:gdcm::Coder的测试程序
  6. ITK:读未知的图像类型
  7. DCMTK:dicom标签的基础类
  8. VTK:可视化算法之SpikeFran
  9. VTK:Rendering之TransparentBackground
  10. VTK:相互作用之ShiftAndControl