IDEA导入第三方jar包, 并在Maven中打包该jar包

news2024/11/18 19:32:29

IDEA导入jar包, 并在Maven中打包该jar包

  • 背景
  • 步骤
    • IDEA导入jar包
    • Maven中打包第三方jar包


背景

项目因为某些原因, 需要引入demo中代码, 但是demo使用的是 java而且没有使用任何框架, 并且还引用第三方 jar,
因此在自己项目(SpringBoot+Maven)中集成demo时. 整个集成过程中颇为麻烦,
遂将此步骤记录一下, 以防日后需要.


步骤

如果是基于Maven的项目, 可以直接跳过 IDEA导入jar包 部分, 直接进行后面部分的配置即可

  1. 在项目中创建jar存放目录
    我的方式在项目根目录下, 创建lib目录, 存放jar
    在这里插入图片描述

IDEA导入jar包

一开始的时候, 引用第三方jar的地方(类上面import部分)报红, 所以需要通过在idea上面配置, 使其能够正常运行demo
因此就在网上找到类似的解决方案. 步骤如下

  1. 进入 File-> Project Structure-> Libraries -> 点击 + 号-> 选择java 选中所选的jar包(多个时一个个添加)
    在这里插入图片描述
  2. 选中jar时, 指定模块(Modules), 这里的模块指定是自己pom文件中的 artifactId
    在这里插入图片描述
  3. 添加完毕之后, Project Structure-> Modules 下面就会有我们添加的jar
    如果还是没有, 我们点击+ 手动添加上一步配置的库即可,
    主要注意的是点击+ 后选择添加的是库 Libraries , 而不是jar或者目录
    在这里插入图片描述
    确认配置好之后, 点击确定, 就发现demo可以正常运行了

Maven中打包第三方jar包

虽然可以运行了, 但是在Maven打包中遇到了问题,
虽然在idea中被添加到了模块中, 但是在打包时就无法引用第三方jar包, 如下图所示
说明在Maven中, 所引用的第三方jar并没有被打进去, 因此需要我们进行二次配置

在这里插入图片描述

  1. 在pom文件中, 添加第三方jar 的引用
    在这里插入图片描述

       <dependency>
          <groupId>com.time.pause</groupId>
          <artifactId>okhttp</artifactId>
          <!--依赖范围-->
          <scope>system</scope>
          <version>3.12.0</version>
          <!--依赖所在位置-->
          <systemPath>${project.basedir}/lib/okhttp-3.12.0.jar</systemPath>
      </dependency>
    

    需要注意的是: groupId,artifactId 无需和jar包中完全一致, 只需我们自定义即可. 版本我们根据实际情况添加

  2. 将添加的第三方jar的Maven坐标纳入到打包插件中
    在这里插入图片描述

          <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
              <!--让maven编译的时候能将第三方包编入-->
              <configuration>
                  <includeSystemScope>true</includeSystemScope>
              </configuration>
          </plugin>
    

    需要注意的是如果没有步骤2配置, 则打包时虽然不会报错了, 但是在使用 java -jar 本地运行jar时仍然会找不到包,
    因为实际上第三方jar并没有被打包插件打入进去


参考博客
https://blog.csdn.net/qq_43599841/article/details/127368168
https://blog.csdn.net/weixin_43888891/article/details/130611728

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

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

相关文章

2023拒绝内卷!两年转行网络安全真实看法!

我目前转行网络安全两年&#xff0c;没啥天分&#xff0c;全靠努力&#xff0c;基本能够得上中级的水平了。看到大家对转行网络安全挺感兴趣&#xff0c;也有挺多争议&#xff0c;想把我的建议和经验告诉大家。 有很多人觉得网络安全已经饱和了&#xff0c;现在选择这个工作&a…

docker-compose 搭建 Sharding-Proxy 5.4.0 分库分表代理服务

感谢: 程序员一枚 提供搭建方式 项目地址: https://gitee.com/dromara/RuoYi-Cloud-Plus/tree/2.X/ 1.在 mysql 创建两个库 创建两个库 data-center_0 data-center_1 分别执行如何sql CREATE TABLE t_order_0 (order_id bigint(20) UNSIGNED NOT NULL COMMENT 主键ID,user_…

【数据结构】27.移除元素

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

P4145 上帝造题的七分钟 2 / 花神游历各国

上帝造题的七分钟 2 / 花神游历各国 题目背景 XLk 觉得《上帝造题的七分钟》不太过瘾&#xff0c;于是有了第二部。 题目描述 "第一分钟&#xff0c;X 说&#xff0c;要有数列&#xff0c;于是便给定了一个正整数数列。 第二分钟&#xff0c;L 说&#xff0c;要能修改…

Ubuntu22.04搭建mysql主从复制

记录哈&#xff0c;这个需要两台服务器&#xff0c;每台服务器上面都要安装mysql&#xff0c;若是没有安装&#xff0c;请分别在两台服务器上面运行下面的命令 sudo apt install mysql-server 引用 Ubuntu下的mysql8.0忘记密码怎么办? 环境 Ubuntu 22.04 主机:192.168.164.1…

mac前端代码编辑 Sublime Text 4 Dev 中文v4.0(4151)

Sublime Text 4 for Mac是一款功能强大的代码编辑器&#xff0c;适合所有需要高效编写代码和进行代码管理的程序员使用。 快速响应&#xff1a;Sublime Text 4在加载文件和执行命令时非常快速&#xff0c;能够让用户在高效的开发过程中体验到无缝的交互。 多种语言支持&#…

定了!全国2023下半年软考(高级、中级、初级)报名时间汇总

截止到2023年8月2日&#xff0c;有以下地区公布了软考报名时间&#xff1a; 安徽软考2023下半年报名时间&#xff1a;8月15日9:00至8月21日16:00 黑龙江软考2023下半年报名时间&#xff1a;8月16日至8月22日 甘肃软考2023下半年报名时间&#xff1a;8月28日9:00至9月6日18:00…

安全文件传输的重要性及其对企业的影响

在当今的信息时代&#xff0c;企业之间的文件传输已经成为日常工作的重要组成部分。无论是在商务合作、人力资源还是财务审计等方面&#xff0c;文件传输都发挥着关键的作用。然而&#xff0c;随着网络技术的发展&#xff0c;网络安全问题也日益突出&#xff0c;泄漏、篡改、丢…

django使用mysql数据库

Django开 发操作数据库比使用pymysql操作更简单&#xff0c;内部提供了ORM框架。 下面是pymysql 和orm操作数据库的示意图&#xff0c;pymysql就是mysql的驱动&#xff0c;代码直接操作pymysql ,需要自己写增删改查的语句 django 就是也可以使用pymysql、mysqlclient作为驱动&a…

EXCEL里数值列如何显示序号?如何重新排序? 怎么取得排序后的序号?

目录 1 EXCEL里如何显示序号&#xff1f; 2 如何重新排序&#xff1f; 3 怎么取得排序后的序号&#xff1f; 3.1 rank() 的序号可能不连续 3.2 方法2&#xff1a;SUMPRODUCT((C7>C$7:C$12)/COUNTIF(C$7:C$12,C$7:C$12))1 EXCEL里如何显示序号&#xff1f;如何重新排序…

A Survey of Embodied AI: From Simulators to Research Tasks 论文阅读

论文信息&#xff1a; 题目&#xff1a;A Survey of Embodied AI: From Simulators to Research Tasks 作者&#xff1a;Jiafei Duan, Samson Yu 来源&#xff1a;arXiv 时间&#xff1a;2022 Abstract 通过评估当前的九个具体人工智能模拟器与我们提出的七个功能&#xff0…

redis的事务、redis持久化方案、Java操作redis数据库

五、redis的事务 开启事务&#xff1a; 要等左边的提交事务&#xff0c;右边才能拿到修改后的值 本来name不能增加&#xff0c;会报错&#xff0c;但是事务中没提交不知道错 此时提交数据&#xff1a; redis事务将成功的正常提交&#xff0c;失败的才回滚&#xff0c;所以不具备…

C++源码Cmake生成各架构的库

网上一般的教程都是手写C源码进CMakeList 例如&#xff1a; add_executable (main a.cpp b.cpp a/c.cpp ... ) 这种写法太蠢了&#xff0c;不适合项目多层级目录使用 遍历所有文件夹 下面的代码是Cmake代码&#xff0c;一开始看到的时候我也是震惊的&#xff0c;但事实就是它…

2023年性价比电脑硬件主机推荐|电脑党必备硬件选购攻略

在自主搭建电脑变得流行且显卡价格飙升的这个时代&#xff0c;我想给大家推荐一款特别的产品——NUC&#xff08;Next Unit of Computing&#xff09;。 NUC是Intel所推出的一种「ITX台式机」&#xff0c;截止目前已经迭代了很多型号&#xff0c;比如之前我买过的猛兽峡谷&…

Flink读取mysql数据库(java)

代码如下: package com.weilanaoli.ruge.vlink.flink;import com.ververica.cdc.connectors.mysql.source.MySqlSource; import com.ververica.cdc.connectors.mysql.table.StartupOptions; import com.ververica.cdc.debezium.JsonDebeziumDeserializationSchema; import org…

夏日暴雨,6大安全应对攻略,让我们一起做好防范

夏季暴雨来袭&#xff0c;我们必须高度警惕&#xff01;短时间的强降雨可能导致积水、山区滑坡、城市内涝等问题&#xff0c;给社会和经济发展带来严重影响。今天&#xff0c;让我们一起探讨一些有效的防范措施&#xff0c;确保个人安全与减少灾害损失。关注天气预警&#xff0…

IC秋招| 秋招怎么做准备,这份攻略请收下!

近期大家关注的就是秋招了&#xff0c;如今一些企业已经开启了提前批招聘&#xff0c;不少同学已经投递了简历&#xff0c;但内心还是非常焦虑&#xff0c;那么今年的秋招到底该如何准备呢&#xff1f; 简历投递思路建议 刚开始对大厂没有把握的话&#xff0c;可以先约初创或…

SWAT模型【建模方法、实例应用、高级进阶技能】

查看原文>>>SWAT模型【建模方法、实例应用、高级进阶技能】 【内容简述】&#xff1a; 【其它相关推荐】&#xff1a; 一维二维水动力模拟、水质建模、复杂河网构建技术在环境影响评价、防洪评价与排污口论证等实际项目中的应用 基于R语言的水文、水环境模型优化技…

黑客滥用 Google AMP 进行规避性网络钓鱼攻击

近日&#xff0c;有安全研究人员警告称&#xff0c;有越来越多的网络钓鱼活动利用谷歌加速移动页面(AMP)绕过电子邮件安全措施&#xff0c;进入企业员工的收件箱。 谷歌AMP是由谷歌和30个合作伙伴共同开发的一个开源HTML框架&#xff0c;旨在加快网页内容在移动设备上的加载速…

剑指 Offer 54. ! 二叉搜索树的第k大节点 (考察二叉树的中序遍历)

剑指 Offer 54. 二叉搜索树的第k大节点 给定一棵二叉搜索树&#xff0c;请找出其中第 k 大的节点的值。 我的思路是&#xff1a;用一个全局arrayList不断收集“逆向”中序遍历该搜索二叉树所需要的答案 class Solution {int res, k;public int kthLargest(TreeNode root, int …