项目引入Jar包的几种方式

目录

背景

方式一

前提

创建一个jar包

使用

方式二


背景

        通常情况下,使用SpringBoot框架开发项目的过程中,需要引入一系列依赖,首选的就是在项目的 pom.xml 文件里面通过Maven坐标进行引入(可以通过Maven的坐标引入jar包的前提是jar包是通过Maven的方式进行发布的,比如我们通常在 maven官方仓库 搜索到具体jar包的坐标依赖后,直接复制到项目的 pom.xml 文件就可以了),如下图使用坐标依赖的形式在项目中引入junit

        但是如果在开发过程中用到的某些jar包并非是通过Maven的方式发布的,那自然也不能通过Maven的方式进行引入(大白话解释就是:项目中需要使用某个jar包,并且我们已经拿到这个jar包了,但是这个jar包不是通过 maven的方式进行发布的,我们没办法在项目中通过 GAV坐标的形式把这个jar包引入到项目中来使用),此时有以下几种解决办法。

方式一

前提

        我们已经拿到了一个 jar 文件(如:xxx.jar),没办法通过 Maven的方式进行引入。

创建一个jar包

        新建一个最普通的Java项目(注意:不是Maven项目,就是最普通的Java项目),如下图:

        把上述的Java项目导出成一个 jar包。把一个Java工程打成一个jar包需要如下几个步骤(看图):

 

 

 

 

 

 

 

 

使用

        通过上述步骤我们得到了一个jar包(outer.jar),现在就把这个 outer.jar看成是项目需要引入的一个外部jar包(这个jar包没办法通过maven的方式引入到项目中),具体使用方式如下:

(1)再新建一个项目(SpringBoot项目),如下图:

(2)把 outer.jar 通过maven命令安装到本地仓库中 

此处使用install插件的install-file目标:

mvn install:install-file -Dfile=[体系外jar包的路径] \

-DgroupId=[给体系外 jar 包强行设定坐标] \

-DartifactId=[给体系外 jar 包强行设定坐标] \

-Dversion=[给体系外 jar 包设定一个版本号] \

-Dpackaging=jar

例如(Windows系统下使用 ^符合换行;Linux系统使用 \ 换行) 

 

mvn install:install-file -Dfile=C:\Users\24350\Desktop\outer.jar ^

-DgroupId=com.shg ^

-DartifactId=test-outer-jar ^

-Dversion=1.0 ^

-Dpackaging=jar

 安装截图1:

安装截图2:选择Command Prompt这种命令行,可以成功执行(不用在 -D 和参数后面加空格)

安装完成后,到自己本地仓库查看是否安装成功,如下图:

(3)在项目中使用,如下图:

 

方式二

        (1)把 outer.jar包放到项目路径下(我这里放到 项目的 /lib目录下),如下图:
 

(2)右键 outer.jar,将其添加到项目类路径下,如下图:

 (3)其实这样已经可以使用这个 <外部的outer.jar>了,如下:

 

(4)但是这种方式存在的问题是,如果打包这个项目, 使用 “Add as Library” 的方式时会报错,所以此时需要在项目的 pom.xml文件里面 "引入" 这个jar包,如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/593691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端知识点(面试可看)—— CSS篇

摘要 马上就要毕业啦&#xff0c;没有参加2023年的秋招&#xff0c;准备在最近开始找全职或者实习工作&#xff0c;然后也马上过年了&#xff0c;总结和理一下自己的知识要点&#xff0c;参加2024年的春招。 1. link和import区别 link是XHTML标签&#xff0c;除了加载CSS之外…

process.cwd() 与 __dirname 的区别

Node.js 中的 __dirname 和 process.cwd() 都是用于获取文件系统路径的全局变量和方法&#xff0c;但它们有不同的含义和用途。 一、process.cwd() process.cwd() 是一个方法&#xff0c;用于获取 Node.js 进程的当前工作目录。它返回的是 Node.js 进程启动时所在的工作目录的…

Java安装详细教程

文章目录 一、JDK 下载 和 安装1.1 选择 Java版本1.2 下载 JDK 二、 配置环境变量2.1 配置环境变量的原因2.2 配置环境变量2.3 验证配置是否成功 参考资料 一、JDK 下载 和 安装 1.1 选择 Java版本 访问 Oracle 官方网站的 Java 下载页面Java Archive | Oracle。 在 “Java …

用PHP搭建一个绘画API

【腾讯云AI绘画】用PHP搭建一个绘画API 大家好&#xff01;今天我要给大家推荐的是如何用PHP搭建一个绘画API&#xff0c;让你的网站或应用瞬间拥有强大的绘画能力&#xff01;无论你是想要让用户在网页上绘制自己的创意&#xff0c;还是想要实现自动绘画生成特效&#xff0c;这…

可以写作文的AI写作,看看这五款

随着人工智能技术的不断发展&#xff0c;AI写作软件逐渐走进了我们的生活&#xff0c;这些软件可以帮助我们快速生成高质量的作文&#xff0c;节省了大量的时间和精力。在市场上有许多种类的AI写作软件&#xff0c;下面我将介绍五款比较受欢迎的。 首先&#xff0c;我们来看看“…

进程的基础认识

一、进程的概念 进程是指 可执行程序 内核数据结构&#xff08;内核为了管理进程而创建的数据结构&#xff09;。 二、进程的管理 进程是靠PCB(process control block [进程控制块])管理起来的&#xff0c;在linux下PCB叫 task_struct 当一个可执行程序从磁盘加载进内存&…

HTTP 错误 401.3 - Unauthorized 由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置。

用IIS 发布网站&#xff0c;不能访问且出现错误&#xff1a; HTTP 错误 401.3 - Unauthorized 由于Web服务器上此资源的访问控制列表(ACL)配置或加密设置。您无权查看此目录或页面 解决办法&#xff1a; 1.打开IIS界面&#xff0c;选中发布的网站&#xff0c;右键—>编辑…

【Java 基础】-- 实例化

1、定义 创建对象的过程就叫实例化。这个过程中会在堆中开辟内存&#xff0c;将一些非静态的方法&#xff0c;变量存放在里面。在程序执行的过程中&#xff0c;可以创建多个对象&#xff0c;既多次实例化。每次实例化都会开辟一块新的内存。 2、实例化的几种方法 new 关键字创…

Yolov8部署——segmentation部署以及批量推理

Yolov8部署——segmentation部署以及批量推理 参考:在windows上部署Yolov8主要参考下面两个仓库&#xff0c;https://github.com/xunzixunzi/tensorrt-cpp-api和https://github.com/xunzixunzi/YOLOv8-TensorRT-CPP&#xff0c;代码说是适合批量处理&#xff0c;但是代码中是以…

bootstrap5实现的在线商城网站Parlo

一、需求分析 在线商城网站是指基于互联网技术搭建的电子商务平台&#xff0c;通过网站提供商品和服务的展示、销售和交易功能。它的主要作用包括以下几个方面&#xff1a; 商品展示和销售&#xff1a;在线商城网站是商家展示商品的平台&#xff0c;可以通过图片、文字、视频等…

水经微图IOS版APP正式上线!

水经微图APP&#xff08;简称“微图APP”&#xff09;IOS版已正式上线&#xff01; 微图IOS版APP下载安装 节后上班第一天&#xff0c;同事说微图APP通过了苹果应用商店审核&#xff0c;已经上线了。 于是迫不及待地打开 App Store 搜索“水经微图”&#xff0c;但并没有搜索…

uniapp中组件库的Radio 单选框丰富的使用方法

目录 #平台差异说明 #基本使用 #自定义形状 #禁用radio #是否禁止点击提示语选中复选框 #自定义颜色 #横向排列形式 #横向两端排列形式 API #Radio Props #radioGroup Props #radio Event #radioGroup Event 单选框用于有一个选择&#xff0c;用户只能选择其中一个…

复试 || 就业day06(2024.01.01)算法篇

文章目录 前言分糖果最长和谐子序列两个列表的最小索引总和错误的集合两数之和 IV - 输入二叉搜索树 前言 &#x1f4ab;你好&#xff0c;我是辰chen&#xff0c;本文旨在准备考研复试或就业 &#x1f4ab;文章题目大多来自于 leetcode&#xff0c;当然也可能来自洛谷或其他刷题…

C++ DAY6 作业

1.用模板类写顺序表 #include <iostream>using namespace std;#define MAXSIZE 10 template <typename T> class Arr {T *data NULL;int len 0; public://构造函数Arr():data(new T){}Arr(T a,int len):data(new T(a)),len(len){}//析构函数~Arr(){delete data;}…

【elfboard linux开发板】4. 文件点灯与创建多进程

ps&#xff1a;提升效率的小tips&#xff1a; 灵活运用vim操作命令&#xff0c;gg快速跳转到文件开头&#xff0c;G跳转到结尾 多行操作 ctrl V shift i 插入修改内容 esc退出编辑 sudo vi /etc/vim/vimrc 在文件中添加如下内容省略重复工作&#xff1a; autocmd BufNewFile …

霹雳吧啦Wz《pytorch图像分类》-p3VGG网络

《pytorch图像分类》p3VGG网络详解及感受野的计算 一、零碎知识点1.nn.Sequential2.**kwargs 二、VGG网络模型详解1.感受野2.模型手算 三、代码1.module.py2.train.py3.predict.py 一、零碎知识点 论文连接&#xff1a;VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAG…

结算时间和可组合性助力Sui上DeFi蓬勃发展

结算时间是基于Sui交易处理模型的度量标准&#xff0c;确保DeFi用户几乎立即看到交易结果。可组合性则是深深融入Sui的编程环境&#xff0c;扩展了其对对象和智能合约的影响。Sui深度的可组合性赋予DeFi构建者引入创新产品的能力&#xff0c;使其在其他区块链上的DeFi应用中独树…

基于Java校园招待所管理系统

基于Java校园招待所管理系统 功能需求 1、客房管理&#xff1a;系统需要管理招待所的客房信息&#xff0c;包括房间类型、数量、价格、状态等&#xff0c;并能够实时更新客房状态。 2、客人管理&#xff1a;系统需要记录客人的基本信息&#xff0c;包括姓名、性别、年龄、联…

Crypto的简单应用-前后端加密传输

最近遇到一个数据脱敏处理的需求&#xff0c;想要用一种轻量级的技术实现&#xff0c;必须足够简单并且适用于所有场合如前后端加密传输、路由加密、数据脱敏等。抽时间研究了一下Crypto加密库的一些API&#xff0c;发现完全符合上述需求&#xff0c;扩展也比较容易。 1、前端加…

[C#]使用onnxruntime部署Detic检测2万1千种类别的物体

【源码地址】 github地址&#xff1a;https://github.com/facebookresearch/Detic/tree/main 【算法介绍】 Detic论文&#xff1a;https://arxiv.org/abs/2201.02605v3 项目源码&#xff1a;https://github.com/facebookresearch/Detic 在Detic论文中&#xff0c;Detic提到…