maven、springboot项目编译打包本地jar、第三方jar包

news2024/12/22 4:27:24

0. 引言

一般我们在maven项目中都是通过引入pom坐标的形式来引入第三方jar包,但某些场景下,第三方是直接提供的jar包文件,这就需要我们从本地引入第三方包并进行打包。所以我们今天来看下如何进行本地引入第三方包操作

1. 步骤

1、在项目下创建lib文件夹,或者其他文件夹,将第三方包放入该文件夹下
在这里插入图片描述

2、IDEA中执行快捷键F4,或手动进入Project Settings,在Libraries中点击添加jar包,选择我们刚刚引入的jar包
在这里插入图片描述

3、修改pom文件,指定第三方jar包文件,
这里注意要添加<includeSystemScope> true </includeSystemScope>配置,这样才会在打包时加载本地的jar,否则会出现本地运行没问题,但编译打包出来就会报错找不到类

同时注意把<mainClass>中的<skip>调整成false, 否则引入的包不会一起打包出来

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <!--配置本地jar包在项目的存放路径jar包-->
                    <compilerArguments>
                        <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webResources>
                        <resource>
                            <!--配置本地jar包在项目中的存放路径-war包-->
                            <directory>src/main/webapp/WEB-INF/lib/</directory>
                            <!--配置打包时jar包的存放路径-->
                            <targetPath>WEB-INF/lib</targetPath>
                            <includes>
                                <include>**/*.jar</include>
                            </includes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.example.security_demo.SecurityDemoApplication</mainClass>
                    <skip>false</skip>
                    <!-- 加入此配置,才会把本地的jar包也引进去 -->
                    <includeSystemScope> true </includeSystemScope>

                </configuration>

                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

4、pom里添加刚刚引入的jar包,这里的systemPath路径就选择jar包所在的路径

 <dependency>
            <groupId>com.cdp.product</groupId>
            <artifactId>cdp-common-security</artifactId>
            <version>11.0.0-SNAPSHOT</version>
            <scope>system</scope>
            <systemPath>${pom.basedir}/lib/cdp-common-security-java.jar</systemPath>
</dependency>

5、选择编译打包
在这里插入图片描述

6、查看打包出来的jar包,只要不是几十K的大小,这种10M+的,说明第三方包已经包含进去了
在这里插入图片描述

7、项目正常启动
在这里插入图片描述
8、调用测试接口也正常(这里test接口的作用是将入参做加密输出)
在这里插入图片描述

2. 总结

如上,我们就完成了本地引入第三方jar并实现编译打包的操作。如果你打包出来的文件运行有误,仔细检查下配置与我上述的是否一致

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

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

相关文章

在pycharm中jupyter连接上了以后显示无此库,但是确实已经安装好了某个库,使用python可以跑,但是使用ipython就跑不了

今天遇到一个事情&#xff0c;就是用pycharm的jupyter时&#xff0c;连接不上&#xff0c;后来手动连接上了以后&#xff0c;发现环境好像不对。 一般来说&#xff0c;这里会是python3&#xff0c;所以里面的环境也是普通python的环境&#xff0c;并没有我下载的库&#xff0c;…

C#WPF界面MVVM框架下异步命令的启动和停止及绑定

框架采用CommunityToolkit.Mvvm&#xff0c;界面如下 View的XAML代码 <Window x:Class"WpfApp6.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns…

SpringBoot整合多数据源,并支持动态新增与切换

SpringBoot整合多数据源&#xff0c;并支持动态新增与切换 一、概述 在项目的开发过程中&#xff0c;遇到了需要从数据库中动态查询新的数据源信息并切换到该数据源做相应的查询操作&#xff0c;这样就产生了动态切换数据源的场景。为了能够灵活地指定具体的数据库&#xff0…

php ext-sodium 拓展安装 linux+windows

php编译安装(linux)&#xff0c;可以参考&#xff1a;php编译安装 一、windows soduim源码包自带&#xff0c;直接修改php.ini&#xff0c;取消extensionsodium注释即可 二、linux 1.安装依赖 apt-get install libsodium-dev2.进入源码目录 这里写自己的源码目录 cd /us…

鸿蒙OpenHarmony开发实战-0开始做游戏渲染引擎

首先实现了一个通用的画廊组件来作为练手项目&#xff0c;它主要使用了四个基础组件和容器组件&#xff1a; 我们放置一个按钮来触发 showGallery 方法&#xff0c;该方法控制 panel 弹出式组件的显示和隐藏&#xff0c;这里的 div 和 button 标签就是 hml 内置的组件&#xf…

深度学习(学习记录)

题型&#xff1a;填空题判断题30分、简答题20分、计算题20分、综合题&#xff08;30分&#xff09; 综合题&#xff08;解决实际工程问题&#xff0c;不考实验、不考代码、考思想&#xff09; 一、深度学习绪论&#xff08;非重点不做考察&#xff09; 1、传统机器学习&…

Vue3 结合typescript 组合式函数

在App.vue文件中 实现鼠标点击文件&#xff0c;显示坐标值 第一种方法 第二种方法&#xff1a;组合式函数 结果&#xff1a; 官网推荐组合函数&#xff1a;https://vueuse.org

图论及其应用(匈牙利算法)---期末胡乱复习版

目录 题目知识点解题步骤小结题目 T1:从下图中给定的 M = {x1y4,x2y2,x3y1,x4y5},用 Hungariam算法【匈牙利算法】 求出图中的完美匹配,并写出步骤。 知识点 关于匈牙利算法: 需要注意的是,匈牙利算法仅适用于二分图,并且能够找到完美匹配。什么是交替路?从一个未匹…

SpringMVC-HelloWorld

一、SpringMVC简介 1.1 SpringMVC和三层架构 MVC是一种软件架构思想&#xff0c;将软件按照模型、视图和控制器三个部分划分。 M&#xff1a;model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;用于处理数据。JavaBean分为两类&#xff1a; 实体类Bean&…

Redis VS Memcached:选择哪个更适合您的应用?

目录 1、前言 2、概念简介 2.1 Redis 2.2 Memcached 3、数据模型 4、持久性 5、分布式能力 6、性能和扩展性 7、如何选择适合您引用的缓存系统 8、结语 1、前言 Redis和Memcached都是常见的内存缓存系统&#xff0c;用于提升应用程序的性能和可扩展性。它们都具有高…

Jenkins的Transfers路径怎么配置,解决Transfers配置不生效的问题

Transfers配置: 1.配置Source files: 要填写jar包的相对路径,从当前项目工作空间的根目录开始,看看我的工作空间你就懂了 !如图 我填的是 parent/build/libs/parent-1.0.0.jar,即不要 fdw1/ 的前缀 2.配置Remote directory: 远程目标文件夹,也就是你jar包要放到远程…

TSConfig 配置(tsconfig.json)

详细总结一下TSConfig 的相关配置项。个人笔记&#xff0c;仅供参考&#xff0c;欢迎批评指正&#xff01; 根目录 {/* 指定编译文件/目录 */"files": [], // 指定被编译的文件"include": [], // 指定被编译文件所在的目录"exclude": [], // 指…

《Ensemble deep learning: A review》阅读笔记

论文标题 《Ensemble deep learning: A review》 集成深度学习&#xff1a; 综述 作者 M.A. Ganaie 和 Minghui Hu 来自印度理工学院印多尔分校数学系和南洋理工大学电气与电子工程学院 本文写的大而全。 初读 摘要 集成学习思想&#xff1a; 结合几个单独的模型以获得…

C++Qt6 多种排序算法的比较 数据结构课程设计 | JorbanS

一、 问题描述 在计算机科学与数学中&#xff0c;一个排序算法&#xff08;英语&#xff1a;Sorting algorithm&#xff09;是一种能将一串资料依照特定排序方式排列的算法。最常用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法&#xff08;例如搜索算法与合…

github短视频去除水印项目Douyin_TikTok_Download_API介绍

当下正值短视频盛行的时代。在我们浏览短视频的同时&#xff0c;经常能发现一些精美的图片、引人入胜的文案以及吸引眼球的视频&#xff0c;想要将它们保存到本地。然而&#xff0c;保存下来的图片或视频通常伴随着不太愉悦的水印&#xff0c;这显著降低了使用体验。因此&#…

uniapp中uview组件库的Input 输入框 的使用方法

目录 #平台差异说明 #基本使用 #输入框的类型 #可清空字符 #下划线 #前后图标 #前后插槽 API #Props #Events #Methods #Slots 去除fixed、showWordLimit、showConfirmBar、disableDefaultPadding、autosize字段 此组件为一个输入框&#xff0c;默认没有边框和样式…

VS 2022 控制台程序运行时不显示控制台

Visual Studio 2022&#xff0c;C#控制台程序运行时不显示控制台。此外&#xff0c;C#程序修改运行时的程序名。 文章目录 不显示控制台修改运行时的程序名打包成.exe 文件 不显示控制台 1 选中需要项目&#xff0c;右击属性&#xff0c;选中常规。 2 将输出类型从控制台改为…

Go语言命令行参数及cobra使用教程

Go语言命令行参数及cobra使用教程 1.原生命令行参数2.使用CIL框架Cobra创建 rootCmd创建你的 main.go创建其他命令子命令返回和处理错误 3.cobra使用标志4.Cobra位置参数和自定义参数5.Cobra PreRun和PostRun钩子 1.原生命令行参数 os 包以跨平台的方式&#xff0c;提供了一些…

机器学习-基于attention机制来实现对Image Caption图像描述实验

机器学习-基于attention机制来实现对Image Caption图像描述实验 实验目的 基于attention机制来实现对Image Caption图像描述 实验内容 1.了解一下RNN的Encoder-Decoder结构 在最原始的RNN结构中&#xff0c;输入序列和输出序列必须是严格等长的。但在机器翻译等任务中&…

你真的会用Pycharm?这本耗时2年编写的《Pycharm中文指南》,解决你的困惑!

很多读者应该非常了解 JetBrains 开发的 PyCharm 了&#xff0c;它差不多是 Python 最常用的 IDE之一。PyCharm的优势在于可以为我们节省大量时间、管理代码&#xff0c;并完成大量其他任务&#xff0c;如 debug 和可视化等。 需要最新专业版PyCharm永久使用权限的扫码获取 那…