maven项目引入外部文件(资源)

2023-11-18

1. maven项目如何引入外部文件?

maven项目一般在main目录下分为java和resources,前者是源码,后者是资源(含外部文件)。

在maven的pom.xml中指定resources所在目录后,当maven编译时,resources中的资源会被maven全量复制到target/classes中。(不依赖任何maven插件,但是想java编译顺利,至少还是引入maven-compiler-plugin)

<resources>
    <resource>
        <directory>src/main/resources/base</directory>
        <targetPath>${basedir}/target/classes</targetPath> <!-- 可选,resource的部署目标目录 -->
        <excludes>
            <exclude>*.db</exclude>
        </excludes>
    </resource>
</resources>

在代码中想加载此类文件时,可以通过

PoiThriftServiceImpl.class.getClassLoader().getResource("resourceFileName").getPath();

获取resources下名为resourceFileName的文件。

详见:

https://blog.csdn.net/tototuzuoquan/article/details/45033467

2. 如果是给别人提供的jar包中,引入外部文件?

代码被打成jar包后,target/classes下的源码和文件会都进入jar包。

但是外部jar包在被引入后,经过maven编译,会成为一份.class和内部的java类处于同一classes目录下。

此时,类进行getClassLoader获取的是内部包的target/classes目录。

所以,外部文件需要放到内部项目的resources中,即可被jar包所发现。

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

maven项目引入外部文件(资源) 的相关文章

随机推荐

  • 面试知识点梳理及相关面试题(五)-- 多线程

    1 进程 线程和协程 进程 一个运行的程序就是一个进程 进程是资源分配的最小单位 线程 程序中运行的一个个子任务就是一个线程 线程是操作系统调度执行的最小单位 协程 协程是一种用户态的轻量级线程 协程的调度完全由用户控制 2 创建线程的四种
  • ue4_timeline时间轴

    1 给一个cube添加蓝图 需要修改的是z轴方向移动位置 将z轴传入时间轴 时间轴蓝图如下 z轴时间轴修改为 第一个节点 time 0 value 300 物体的z轴初始位置 第二个节点 time 1 value 600 z轴移动300个单
  • 【python3】3.函数、类、模块

    2022 11 15 本学习内容总结于莫烦python 3 函数 类 模块 https mofanpy com tutorials python basic interactive python function 1 Function 函数
  • IB计算机科学选课,IB体系应如何正确选课?

    原标题 IB体系应如何正确选课 选择国际学校最重要的环节就是选课 这决定了你之后的学习方向和计划 甚至影响到成绩的好坏 目前很多国际学校都是IB体系 IB课程除了重视基础知识教学 还有学生的综合素质培养 教学大纲也是与时俱进5年一换 IB体
  • Vue3 + Vite3 + Element-Plus 管理系统

    Vue3 Vite3 Element Plus 管理系统 介绍 vue diverse admin 基于 Vue3 TypeScript Vite3 Element Plus 开源的一套后台管理模板 项目均使用JS开发 但已经配置TS 可以
  • 【VHDL】随机存储器RAM、只读存储器ROM

    VHDL 随机存储器设置 RAM程序 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL ENTITY RAM 8 IS PORT CS RD WR IN STD LOGIC CLK IN STD LOGIC
  • Android SDK的安装教程

    Android SDK的安装教程 Android4 1虽说已经发布了好些天 但由于的我手机比较坑 系统依旧保持在2 3 4 0的都是可望不可即的了 就别说4 1 由于资金的问题 没法换手机 只能另想方法 通过在笔记本上装android4 1
  • java实现,如何在当前时间往后推三十天

    Calendar cal Calendar getInstance cal add Calendar Date 30 Date date cal getTime
  • topaz全家桶中文_apache 开源项目全家桶 2020年12月中文介绍

    apache项目全家桶 很多apache开源项目特别好 但是没什么能汇总的文档 我来整一个 不定期更新 big data 50 Project Apache Accumulo star 838 github https github com
  • shell脚本基础4——function函数、expect

    文章目录 一 function函数 1 1 函数的定义使用 1 2 函数参数 1 2 1 脚本内传参 1 2 2 脚本外传参 1 3 引用局部变量 1 3 1 区分局部变量 1 3 2 全局变量在函数外 1 3 3 全局变量在函数体 1 3
  • windows检测文件夹是否更新.bat脚本 windows循环检查文件夹

    最近在写windows脚本 记录一下一个很有用的信息 参考 https zhidao baidu com question 2208474390884363868 html 转载于 https www cnblogs com ChenCha
  • Python3 使用 matplotlib 画折线图

    ChartUtil py import matplotlib pyplot as plt from pylab import mpl def plotLine xData yData xLabel chartTitle mpl rcPara
  • matlab:基本操作与矩阵输入

    学习素材 MATLAB教程 台大郭彦甫 14课 原视频补档 MATLAB教程 台大郭彦甫 14课 原视频补档 哔哩哔哩 bilibili 部分素材使用视频截图 目录 一 基本运算 二 关键字 三 format 四 符号 1 2 colon
  • [ACTF 2020 新生赛] Exec

    Exec ping 127 0 0 1 ls ping 127 0 0 1 nl f
  • ABAP实现粘贴板的操作,复制粘贴_SAP刘梦_新浪博客

    ABAP可以实现复制粘贴的操作 自己玩儿 项目里暂时用不到 在ABAP中的 CLASS CL GUI FRONTEND SERVICES中提供了两个方法来控制与剪贴板内容的导入导出 分别是 CLIPBOARD EXPORT和CLIPBOAR
  • Git学习笔记【1】---本地操作

    声明 本教程参考自https www bilibili com video BV1Zz4y1C7vg p 17 一 Git的安装 官网下载即可 https git scm com 二 初始化本地仓库 1 创建一个文件夹 2 打开Git终端
  • Java常用System类

    java lang System类中提供了大量的静态方法 可以获取与系统相关的信息或系统级操作 在System类的API文档中 常用的方法有 public static long currentTimeMillis 返回以毫秒为单位的当前时
  • 移动互联网终端的touch事件,touchstart, touchend, touchmove

    前言 如果我们允许用户在页面上用类似桌面浏览器鼠标手势的方式来控制WEB APP 这个页面上肯定是有很多可点击区域的 如果用户触摸到了那些可点击区域怎么办呢 诸如智能手机和平板电脑一类的移动设备通常会有一个电容式触摸屏 capacitive
  • 微信小游戏关系链能不能获取到服务器,关系链互动数据

    关系链互动数据 在开放 关系链数据能力 的基础上 小游戏新增 互动型托管数据 提供关系链互动能力 用于实现小游戏内微信好友互动 点赞 送礼物等 的功能 关系链互动数据能力支持 好友间互赠 50 种游戏内道具 提供成功互动后的主域回调 满足互
  • maven项目引入外部文件(资源)

    1 maven项目如何引入外部文件 maven项目一般在main目录下分为java和resources 前者是源码 后者是资源 含外部文件 在maven的pom xml中指定resources所在目录后 当maven编译时 resource