maven之build resources resource 详细介绍
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 详细介绍相关推荐
- SpringMVC+Maven开发项目源码详细介绍
代码地址如下: http://www.demodashi.com/demo/11638.html Spring MVC概述 Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的 ...
- maven生命周期lifecycle和plugins介绍
一.Maven的生命周期 生命周期的定义:Maven的生命周期就是为了对所有的构建过程进行抽象和统一.在大量项目的构建过程中,Maven总结出了一套高度完善的,易于扩展的生命周期,包括项目的清理,初始 ...
- MyBatis详细介绍
MyBatis基础入门 内容 1.MyBatis介绍 2.MyBatis入门程序 3.MyBatis使用Mapper接口 4.MyBatis之Config文件常用配置 一.MyBatis简介 1 .简 ...
- Maven入门-6-Maven的生命周期和核心命令详细介绍
本篇来介绍Maven的生命周期和前面介绍过几个命令的详细介绍过程.先介绍生命周期,生命周期中不同阶段就包括了一些命令,所以理解了生命周期,再来看看每一个命令的详细使用过程. 1.Maven的生命周期分 ...
- IDEA集成maven流程图详细介绍
前言 最近利用两天时间学习了MyBatis以及maven,避免经典的学过就忘记,我打算做出点总结以便日后复习,当然如果能帮到需要的人也是极好的. 一. 初识maven 1.maven是什么 maven ...
- 矩阵元安全多方详细介绍
第一章 MPC&JUGO 1.概述 大数据时代,海量数据的交叉计算可以为科研.医疗.金融等提供更好支持.许多企业或组织出于信息安全或利益的考虑,内部数据是不对外开放的.形成一个个数据孤岛,数据 ...
- Maven使用指南(超详细)
Maven高级 目标 理解并实现分模块开发 能够使用聚合工程快速构建项目 能够使用继承简化项目配置 能够根据需求配置生成.开发.测试环境,并在各个环境间切换运行 了解Maven的私服 1,分模块开发 ...
- SpringMVC详细介绍 zh-Maven高级(5)
目标 理解并实现分模块开发 能够使用聚合工程快速构建项目 能够使用继承简化项目配置 能够根据需求配置生成.开发.测试环境,并在各个环境间切换运行 了解Maven的私服 1.分模块开发 1) 分模块开发 ...
- maven(三)最详细的profile的使用
文章目录 前言 1. 原理 2. 应用演示 2.1 项目结构 2.2 激活方式 1. 通过maven命令参数 2. 通过pom文件里的activation属性 3. settings.xml中使用ac ...
最新文章
- 2.2tensorflow2官方demo
- Linux命令之文件处理
- beautifulsoup find函数返回值_再端一碗BeautifulSoup
- SQL大圣之路笔记——PowerDesigner之新建table、view、proc
- python二进制文件 删除尾部数据_在Python中读取和切片二进制数据文件的最快方法...
- FD.io VPP对 DPDK的详细配置:绑定网卡,启动VPP
- 「leetcode」452. 用最少数量的箭引爆气球【贪心算法】详细图解
- geatpy - 遗传和进化算法相关算子的库函数(python)
- 有什么软件可以连接到linux系统升级,linux系统和应用程序升级方法
- 概要设计说明书的书写
- 腾达n318虚拟服务器,腾达N318无线路由器的设置教程
- 使用Banner制作轮播图
- Python GUI教程:信号、槽、事件
- 为powerpc编译mtd-utils工具
- vue 创建一个登录界面
- Web 压测工具介绍
- 国家非专业等级计算机考试大纲,非计算机专业最新计算机等级考试大纲与试卷.doc...
- OpenGL(四) 左右手坐标系及基本坐标变换
- element-ui 网格_UI备忘单:列表与网格
- 2021年N1叉车司机考试及N1叉车司机考试内容
热门文章
- pyqt5讲解2:QPushButton,QRadioButton,QCheckBox
- boost::hana::int_c用法的测试程序
- boost::exception_test::throw_test_exception<T>的测试程序
- boost::coroutine2模块实现解析器的测试程序
- GDCM:gdcm::Coder的测试程序
- ITK:读未知的图像类型
- DCMTK:dicom标签的基础类
- VTK:可视化算法之SpikeFran
- VTK:Rendering之TransparentBackground
- VTK:相互作用之ShiftAndControl