maven之 详细介绍

2023-11-14

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源文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

maven之 详细介绍 的相关文章

  • excel subtotal 函数(分类汇总)

    函数说明 返回列表中的分类汇总 语法 SUBTOTAL function num ref1 ref2 SUBTOTAL 函数语法具有以下参数 Function num 必需 数字 1 11 或 101 111 用于指定要为分类汇总使用的函数
  • 2021-10-30 关于ORACLE 19c DBA_JOBS不能自动执行 LAST_DATE为空 排查方式

    ORACLE DBA JOBS 相关报错解决方式 背景 在新创建的ORACLE 19c单实例数据库环境 恢复生产环境数据后 发现任务调度重启 重建仍不能自动进行调度 后发现DBA JOBS不会自动执行 NEXT DATE正常 LAST DA
  • 从输入URL到页面展示发生了什么?

    目录 1 查询缓存 2 DNS解析 3 建立TCP连接 3次握手 4 客户端发起http请求 5 服务器处理请求 6 服务器响应请求 7 浏览器解析html 8 断开TCP连接 4次挥手 1 查询缓存 从输入url按下回车后 我们进入了第一
  • allegro如何快设置快捷键旋转器件

    在Allegro PCB Editor环境中 设置 在命令栏输入下面命令并回车 funckey iangle 90 按空格以90度旋转选中的物体 funckey R iangle 45 按ctrl R以45度旋转选中的物体 此方法 关闭软件
  • TD添加IE8支持

    今天同事突然安装了IE8了 说TestDirector8 0在IE8 0下无法使用 于是在网上搜索 最后终于知道解决方法了 方法一 下载插件 安装TD自带的浏览器 通用 使用 进入TestDirector 单击Add ins Page 在新
  • 彻底解决Idea控制台的中文乱码问题

    一 出现问题 tomcat输入到idea控制台的信息出现中文乱码 二 解决方案 1 打开idea安装的目录 bin文件夹下 找到idea exe vmoptions和idea64 exe vmoptions两个文件 打开 2 将 Dfile
  • 深度学习中的验证集和超参数简介

    大多数机器学习算法都有超参数 可以设置来控制算法行为 超参数的值不是通过学习算法本身学习出来的 尽管我们可以设计一个嵌套的学习过程 一个学习算法为另一个学习算法学出最优超参数 在多项式回归示例中 有一个超参数 多项式的次数 作为容量超参数
  • Error response from daemon: manifest for java:8 not found: manifest unknown: manifest unknown

    拉取镜像出现这等问题 未找到java 8的守护程序清单的错误响应 清单未知 清单未知 找不到该版本号 换java9试试
  • 【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧

    一 问题提出 我有这样一串代码 import matplotlib pyplot as plt plt figure figsize 10 6 此处省略代码 legend append J plt legend legend plt xla
  • 论文阅读 [TPAMI-2022] BDCN: Bi-Directional Cascade Network for Perceptual Edge Detection

    论文阅读 TPAMI 2022 BDCN Bi Directional Cascade Network for Perceptual Edge Detection 论文搜索 studyai com 搜索论文 BDCN Bi Directio
  • 【数据分析】利用机器学习算法进行预测分析(二):线性回归(Linear Regression)

    时间序列预测中的机器学习方法 二 线性回归 Linear Regression 本文是 时间序列预测中的机器学习方法 系列文章的第二篇 如果您有兴趣 可以先阅读前面的文章 数据分析 利用机器学习算法进行预测分析 一 移动平均 Moving
  • Redis集群搭建

    1 安装redis 略 参考 https blog csdn net qq 28326501 article details 114339440 spm 1001 2014 3001 5501 2 复制多份 redis要没有数据 及修改re
  • 文件拷贝

    package Java project 1 import java io public class RecursionDemo public static void main String args try 创建一个字节输入流管道与原文件
  • 数据结构与算法学习笔记

    数据结构与算法 一 数据结构 一组数据的存储结构 二 算法 操作一组数据的方法 三 二者关系 数据结构为算法服务 算法作用在特定的数据结构之上 四 常用数据结构 数组 链表 堆 栈 队列 二叉树 散列表 跳表 图 Trie树 五 常用算法
  • 计算机网络-学习笔记

    计算机网络 学习笔记 1 1 1 概念 组成 功能和分类 概念 计算机网络 是一个将分散的 具有独立功能的计算机系统 通过通信设备与线路连接起来 由功能完善的软件实现资源共享和信息传递的系统 计算机网络是互连的 自治的计算机集合 功能 数据
  • zookeeper的服务容量和自我保护实现思考

    zookeeper的服务容量和自我保护实现思考 1 服务自我保护能力 通过基于租户 Throtting机制 能够对访问请求限流 确保核心服务自我恢复能力 引入租户管理 为后续限流 性能统计等功能提供一个基础的信息 通过Throtting来达
  • 番茄插件遇到的各种安装问题处理

    前言 小编被番茄插件折磨疯了 但最终的还是终究是找到了屠灭巨龙的方法 遇到安装成功 但是打开vs不显示图标 番茄插件没法正常使用的情况 这种大多是多次安装造成的问题 修复重新打开 我们发现之前装的插件没了 这时候需要去做删除注册事件表 再重
  • C语言中的数组为什么不可赋值给另一个数组?数组的初始化,除了遍历赋值,还可以怎么被赋值?

    C语言中的数组为什么不可赋值给另一个数组 因为数组为指针常量 如 int a int b b a 是错误地 因为 int a 是 int const a int b 是 int const b 一个指针常量不可以被另一个指针常量修改 地址常
  • CMOS图像传感器——相位对焦

    之前介绍了许多自动对焦的方案 自动对焦方法学习 沧海一升的博客 CSDN博客自动对焦的各类方法学习介绍https blog csdn net qq 21842097 article details 121373263 在里面提到了遮蔽像素相

随机推荐

  • 【学习笔记】C++STL和泛型编程-侯捷

    文章目录 C 标准库 体系结构与内核分析 第一讲 1 header 版本和重要资源 2 STL体系结构介绍 2 1 STL六大部件 Components 2 2 STL容器的前闭后开区间 2 3 基于范围的for循环 ranged base
  • linux进程间通信---本地socket套接字(二)---多进程实现一个server对应多个client

    先给自己打个广告 本人的微信公众号正式上线了 搜索 张笑生的地盘 主要关注嵌入式软件开发 股票基金定投 足球等等 希望大家多多关注 有问题可以直接留言给我 一定尽心尽力回答大家的问题 想要获取完整源码的 关注公众号后回复 socket2 即
  • 在MFC中使用SQLite需要注意的一些事情

    2023年4月28日 周五晚上 今晚在MFC中使用SQLite 有感而发 使用SQLite的时候 使用最多的就是执行SQL语句 这时要特别注意收集SQLite API执行SQL语句时返回的报错信息 甚至 我建议在用SQLite写项目时 每个
  • 织梦系统基本参数部分内容不显示

    织梦系统基本参数部分内容不显示 版本 织梦5 7sp1 GBK版本 编码很重要 这教程为GBK编码相关问题 仔细研究你会发现 只有中文不能填写 英文 数字都是可以正常填写的 解决方法 网站根目录找到 dede templets sys in
  • 【Python小脚本】实现王者农药自动刷金币啦~啦啦啦走跟我一起组队~

    前言 作者 程序员梨子 文章简介 本篇文章主要是写了自动刷金币脚本啦 文章源码获取 为了感谢每一个关注我的小可爱 每篇文章的项目源码都是无偿分 享滴 点这里蓝色这行字体自取 需要什么源码记得说标题名字哈 私信我也可 欢迎小伙伴们 点赞 收藏
  • 数字化时代-14:什么是市场?商品和金钱流动的场所

    关键词 市场 商品 价值 金钱 交换 生产创造了产品 产品内含了价值 然而 如果产品不进入流通 再多的价值也只能是被埋藏的金子 大多数产品的价值 都有时效性 如果长时间不兑现价值 终将随着时间的推移失去价值 就像人的知识经验 随着时间的推移
  • Git&SourceTree学习

    Souretree操作 1 创建本地仓库 2 创建文件 3 修改文件 add commit 4 创建分支 branch 5 合并分支 merge rebase 6 回滚与重置提交 revert reset 7 推送 push 8 拉取 pu
  • vscode插件-draw.io绘图

    日常绘图经常借助一些绘图软件 如viso 但需要安装 注册等等 而简易的绘图 建议用draw io免费插件 vscode是免费编辑软件 可灵活安装各类插件 先介绍draw io的安装与启用方法 1 启用vscode 如图在vscode的扩展
  • 小轮子一枚-高仿express的Java服务器

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 之前做了个Java项目MockSocks 要做UI 用Swing写实在是又low又费劲 跟前端同事聊起node webkit 觉得很不错 但是我大部分业务都在Java上 于
  • 1052 卖个萌

    本文代码参考来源 柳神 萌萌哒表情符号通常由 手 眼 口 三个主要部分组成 简单起见 我们假设一个表情符号是按下列格式输出的 左手 左眼口右眼 右手 现给出可选用的符号集合 请你按用户的要求输出表情 输入格式 输入首先在前三行顺序对应给出手
  • Nacos的配置中心(简单案例搭建)

    动态更改配置参数 使用Nacos配置中心 一定先把Nacos给启动起来 不然会报错误 java lang IllegalStateException failed to req API nacos v1 ns service list af
  • Please move or remove them before you switch branches.

    用git pull来更新代码的时候 遇到了下面的问题 error Your local changes to the following files would be overwritten by merge xxx xxx xxx php
  • springboot微信公众号小程序在后端调用模板消息发送消息

    Autowired private ReportService reportService PostMapping saveReport public ApiResult addReport RequestBody Report repor
  • adb命令打开摄像头_Camera(一):查看Camera设备详细信息

    一 查看是否存在camera外设 设备节点 ls dev video 二 adb 查看camera 详细信息 2 1 adb shell dumpsys media camera 2 2 adb 查看camera 过滤信息 查看某一项参数
  • ROS下进行人脸识别并输出人脸坐标位置

    功能包下载链接 https download csdn net download qq 42145185 12265062 启动命令 roslaunch face tracker pkg start tracking launch 核心检测
  • solidity:智能合约结构介绍

    合约结构介绍 1 SPDX 版权声明 bytecode metadata 介绍 2 pragma solidity 版本限制 3 contract 关键字 4 import 导入声明 5 interface 接口 6 library 库合约
  • linux系统Web服务配置

    目录 一 什么是Web服务 二 Web服务的架构 三 Web服务的配置 1 安装Apache 2 配置Apache 3 安装MySQL 4 配置MySQL 5 安装PHP 6 配置PHP 四 Web服务的测试 五 Web服务的权限管理 六
  • 泛微oa 明细数据合计

    由于工作的原因接触到了泛微这个支持二次开发的系统 这个系统除了新建页面需要用到一次开发之外 主要采用react的语法来开发 大部分工作都只需要微量的代码支持 在一次开发当中需要统计某一些数据的计算 这也算是一个高并发的问题 因为用户总是不愿
  • 最全最好的Tracker地址目录

    我们在使用BT下载器 例如qBittorrent 下载东西 经常会遇到下载慢 甚至没有速度的情况 添加trackers可以帮助我们连接到更多的资源节点 解决下载没速度的问题 给下载加速 是必备操作 最全最好Trackers 地址目录 打开上
  • maven之 详细介绍

    Maven Build Resources 功能 主要用于打包资源文件 默认情况下maven只打包src main resource下的资源 通过 1 设置build resources 2 使用build helper maven plu