记一次系统的jar包本地化方案

news2024/12/23 5:41:52

重在思路

行内容器环境,tomcat版本是8.5,导致jar包冲突,优先调用了jar包中的方法,致使同名同路径下,改写的类方法失效,报java.lang.NoSuchMethodError错误,删除对应class后需要重新更新jar包到行内maven私服仓库,流程复杂,且不清楚哪些地方依然有重写方法的地方,设置tomcat加载jar包优先级的方式,jar包路径不够灵活,就把关键的几个jar包直接放入lib下,本地调用

Jar包依赖关系

<groupId>ibp</groupId>                              

<artifactId>ibp-parent、ibp-common-validator、ibp-common-workflow、ibp-coreservice</artifactId>
<version>1.2.1.20180408</version>
<groupId>ibp</groupId>                       



<artifactId>ibp-parent、ibp-api、ibp-common-attach、ibp-common-cache、ibp-common-echarts、ibp-login、ibp-sysmanage</artifactId>  
<version>2.0.1.20200110</version>


<groupId>awp</groupId>                    
<artifactId>awp-parent、awp-common、awp-relation、awp-rpp、awp-search</artifactId>  
<version>1.0-RELEASE</version>


<groupId>grc</groupId>
<artifactId>grc-parent</artifactId>
<version>1.0-SNAPSHOT、grc-xxx</version>8

ibp-sysmanage-2.0.1.20200110

1.在WEB-INF/lib下放入jar包

2.在grc-common模块pom文件修改引入方式,(注意:这种方式,自身依赖传递会失效)

 <dependency>
      <groupId>ibp</groupId>
      <artifactId>ibp-sysmanage</artifactId>
      <version>2.0.1.20200110</version>
      <scope>system</scope>
      <systemPath>${project.basedir}/../grc/src/main/webapp/WEB-INF/lib/ibp-sysmanage-2.0.1.20200110.jar</systemPath>
</dependency>

3.经过idea的maven树分析,ibp-sysmanage自身有效依赖,补充如下

<!--***代替ibp-sysmanage补充jar包 start****-->

<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-api</artifactId>
   <version>2.0.1.20200110</version>
</dependency>
<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-common-cache</artifactId>
   <version>2.0.1.20200110</version>
</dependency>
<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-common-echarts</artifactId>
   <version>2.0.1.20200110</version>
</dependency>
<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-common-attach</artifactId>
   <version>2.0.1.20200110</version>
</dependency>
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-aspects</artifactId>
</dependency>
<dependency>
   <groupId>dom4j</groupId>
   <artifactId>dom4j</artifactId>
   <version>1.6.1</version>
</dependency>

<!--***代替ibp-sysmanage补充jar包 end****-->

4.查找引用ibp-sysmanage的jar包进行排除,

ibp-common-workflowawp-common在grc-common模块引用

 

<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-common-workflow</artifactId>
   <version>${ibp.version}</version>
 <exclusions>

...
    <exclusion>
      <groupId>ibp</groupId>
      <artifactId>ibp-sysmanage</artifactId>
    </exclusion>
 </exclusions>
</dependency>



<dependency>
   <groupId>awp</groupId>
   <artifactId>awp-common</artifactId>
   <version>1.0-RELEASE</version>
   <exclusions>
      <exclusion>
         <groupId>ibp</groupId>
         <artifactId>ibp-sysmanage</artifactId>
      </exclusion>
   </exclusions>
</dependency>



因为grc-common已经引入awp-common,可以排除了awp-relation下的awp-common包,grc-bpa模块中引用了awp-relation

<dependency>
   <groupId>awp</groupId>
   <artifactId>awp-relation</artifactId>
   <version>1.0-RELEASE</version>
      <exclusions>
      <exclusion>
         <groupId>awp</groupId>
         <artifactId>awp-common</artifactId>
      </exclusion>
   </exclusions>
</dependency>

ibp-common-workflow-1.2.1.20180408

1.在WEB-INF/lib下放入jar包

2.在grc-common模块pom文件修改引入方式,(注意:这种方式,自身依赖传递会失效)

<dependency>
      <groupId>ibp</groupId>
      <artifactId>ibp-common-workflow</artifactId>
      <version>1.2.1.20180408</version>
      <scope>system</scope>
      <systemPath>${project.basedir}/../grc/src/main/webapp/WEB-INF/lib/ibp-common-workflow-1.2.1.20180408.jar</systemPath>
</dependency>

3.经过idea的maven树分析,ibp-common-workflow自身有效依赖,补充如下

<!--***代替ibp-common-workflow补充jar包 start***-->
<dependency>
   <groupId>org.activiti</groupId>
   <artifactId>activiti-engine</artifactId>
   <version>5.17.0</version>
</dependency>
<dependency>
   <groupId>org.activiti</groupId>
   <artifactId>activiti-spring</artifactId>
   <version>5.17.0</version>
</dependency>
<dependency>
   <groupId>org.activiti</groupId>
   <artifactId>activiti-rest</artifactId>
   <version>5.17.0</version>
</dependency>
<dependency>
   <groupId>org.activiti</groupId>
   <artifactId>activiti-modeler</artifactId>
   <version>5.17.0</version>
</dependency>
<!--***代替ibp-common-workflow补充jar包 end***-->

ibp-coreservice-1.2.1.20180408

1.在WEB-INF/lib下放入jar包

2.在grc-common模块pom文件修改引入方式,(注意:这种方式,自身依赖传递会失效)

<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-coreservice</artifactId>
   <version>1.2.1.20180408</version>
   <scope>system</scope>
   <systemPath>${project.basedir}/../grc/src/main/webapp/WEB-INF/lib/ibp-coreservice-1.2.1.20180408.jar</systemPath>
</dependency>

3.经过idea的maven树分析,ibp-coreservice自身有效依赖,补充如下(好像不加也能启动)

<!--***代替ibp-coreservice补充jar包 start***-->
<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
</dependency>
<dependency>
   <groupId>com.github.jsqlparser</groupId>
   <artifactId>jsqlparser</artifactId>
</dependency>
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
</dependency>
<dependency>
   <groupId>org.jdom</groupId>
   <artifactId>jdom</artifactId>
</dependency>
<dependency>
   <groupId>com.google.code.gson</groupId>
   <artifactId>gson</artifactId>
</dependency>
<dependency>
   <groupId>joda-time</groupId>
   <artifactId>joda-time</artifactId>
</dependency>
<dependency>
   <groupId>org.apache.ant</groupId>
   <artifactId>ant</artifactId>
</dependency>
<dependency>
   <groupId>commons-dbutils</groupId>
   <artifactId>commons-dbutils</artifactId>
</dependency>
<dependency>
   <groupId>commons-collections</groupId>
   <artifactId>commons-collections</artifactId>
   <version>3.2.1</version>
</dependency>
<!--***代替ibp-coreservice补充jar包 end***-->

完整配置

启动成功,仓库不再下载相应jar包

<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-sysmanage</artifactId>
   <version>2.0.1.20200110</version>
   <scope>system</scope>
   <systemPath>${project.basedir}/../grc/src/main/webapp/WEB-INF/lib/ibp-sysmanage-2.0.1.20200110.jar</systemPath>
</dependency>

<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-common-workflow</artifactId>
   <version>1.2.1.20180408</version>
   <scope>system</scope>
   <systemPath>${project.basedir}/../grc/src/main/webapp/WEB-INF/lib/ibp-common-workflow-1.2.1.20180408.jar</systemPath>
</dependency>

<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-coreservice</artifactId>
   <version>1.2.1.20180408</version>
   <scope>system</scope>
   <systemPath>${project.basedir}/../grc/src/main/webapp/WEB-INF/lib/ibp-coreservice-1.2.1.20180408.jar</systemPath>
</dependency>

<dependency>
   <groupId>awp</groupId>
   <artifactId>awp-common</artifactId>
   <version>1.0-RELEASE</version>
   <exclusions>
      <exclusion>
         <groupId>ibp</groupId>
         <artifactId>ibp-sysmanage</artifactId>
      </exclusion>
   </exclusions>
</dependency>

<!--***代替ibp-common-workflow补充jar包 start***-->
<dependency>
   <groupId>org.activiti</groupId>
   <artifactId>activiti-engine</artifactId>
   <version>5.17.0</version>
</dependency>
<dependency>
   <groupId>org.activiti</groupId>
   <artifactId>activiti-spring</artifactId>
   <version>5.17.0</version>
</dependency>
<dependency>
   <groupId>org.activiti</groupId>
   <artifactId>activiti-rest</artifactId>
   <version>5.17.0</version>
</dependency>
<dependency>
   <groupId>org.activiti</groupId>
   <artifactId>activiti-modeler</artifactId>
   <version>5.17.0</version>
</dependency>
<!--***代替ibp-common-workflow补充jar包 end***-->

<!--***代替ibp-sysmanage补充jar包 start****-->

<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-api</artifactId>
   <version>2.0.1.20200110</version>
</dependency>
<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-common-cache</artifactId>
   <version>2.0.1.20200110</version>
</dependency>
<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-common-echarts</artifactId>
   <version>2.0.1.20200110</version>
</dependency>
<dependency>
   <groupId>ibp</groupId>
   <artifactId>ibp-common-attach</artifactId>
   <version>2.0.1.20200110</version>
</dependency>
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-aspects</artifactId>
</dependency>
<dependency>
   <groupId>dom4j</groupId>
   <artifactId>dom4j</artifactId>
   <version>1.6.1</version>
</dependency>
<!--***代替ibp-sysmanage补充jar包 end****-->

<!--***代替ibp-coreservice补充jar包 start***-->
  <dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
</dependency>
<dependency>
   <groupId>com.github.jsqlparser</groupId>
   <artifactId>jsqlparser</artifactId>
</dependency>
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
</dependency>
<dependency>
   <groupId>org.jdom</groupId>
   <artifactId>jdom</artifactId>
</dependency>
<dependency>
   <groupId>com.google.code.gson</groupId>
   <artifactId>gson</artifactId>
</dependency>
<dependency>
   <groupId>joda-time</groupId>
   <artifactId>joda-time</artifactId>
</dependency>
<dependency>
   <groupId>org.apache.ant</groupId>
   <artifactId>ant</artifactId>
</dependency>
<dependency>
   <groupId>commons-dbutils</groupId>
   <artifactId>commons-dbutils</artifactId>
</dependency>
<dependency>
   <groupId>commons-collections</groupId>
   <artifactId>commons-collections</artifactId>
   <version>3.2.1</version>
</dependency>
<!--***代替ibp-coreservice补充jar包 end***-->

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

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

相关文章

基于SSM+jsp的二手车交易网站设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

DBeaver mysql socks5 代理

DBeaver mysql socks5 代理 测试连接报错 Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.切换代理&#xff0c;连接成功 参考 DBeaver 文档 代理配置

谈一谈面试算法的几个常见误区

下一篇我们就开始梳理面试算法的体系了&#xff0c;今天呢&#xff0c;有个问题有必要谈一下——如何正确对待算法&#xff0c;如何征服算法。 目录 1.如何平常心对待算法 2.关于准备算法面试的一些误区 1.如何平常心对待算法 在老师之前算法班的群里&#xff0c;有位同学分…

vue3创建项目(五)vite配置端口号

Vue3配置代理跨域和服务端口等配置&#xff0c;可以在 vite.config.js 进行配置。(类似用 vue-cli 的 vue.config.js&#xff09; https://cn.vitejs.dev/config/第一步&#xff1a;首先在根目录下面创建vue.config.js import { defineConfig } from vite import vue from vite…

CubeMx打不开/不兼容大于java8的解决方案

最近在学习stm32&#xff0c;需要用到cubemx&#xff0c;但是软件都装好了却死活打不开 最后才发现是java版本的问题&#xff0c;cubemx只支持java8(至少java14,16,17,20亲测都不行) 于是便把java8又装了回来&#xff0c;但是又有新问题 不知道为什么&#xff0c;即便环境变量已…

Hologres弹性计算在OLAP分析上的实践和探索

作者&#xff1a;王奇 阿里云Hologres研发 简介&#xff1a; 1、本文介绍了OLAP分析在大数据分析中的位置 2、分析并介绍目前大数据OLAP遇到的分析性能、资源隔离、高可用、弹性扩缩容等核心问题 3、解析阿里云Hologres是如何解决极致性能、弹性、业务永续、性价比等核心刚需的…

从0到1 关于MySQL的数据库和表

一个字&#xff1a;细腻。 目录 1. 下载和安装MySQL及其可视化工具 2. 启动MySQL和客户端连接 3. 创建和查看数据库和表 1. 下载和安装MySQL及其可视化工具 下载和安装MySQL推荐博客&#xff1a; mysql数据库安装&#xff08;详细&#xff09;_体会&#xff01;的博客-CSD…

Idea部署 web项目时出现404问题

新手开发过程中发布项目可能会遇到这种问题&#xff0c;看到404&#xff0c;证明代码没有问题&#xff0c;地址有问题。 解决方法&#xff1a;&#xff08;此解决方法适用于&#xff0c;发布程序后首页能正常显示的情况下&#xff0c;点击任何菜单直接404&#xff09; 先看发布…

【NoSQL之 Redis配置与优化】

目录 一、关系数据库与非关系型数据库1、关系型数据库和非关系型数据库区别&#xff08;1&#xff09;数据存储方式不同&#xff08;2&#xff09;扩展方式不同&#xff08;3&#xff09;对事务性的支持不同 2、非关系型数据库产生背景总结 二、Redis简介1、Redis 具有以下几个…

数据库实验—触发器

为Students创建一触发器&#xff0c;并给出正反实例的SQL语句&#xff1a;当插入或修改一条学生记录时&#xff0c;确保此学生的入学年龄在14~40岁之间。 create trigger TRIGGER_Stu on Students for insert , update as declare age int select ageyear(getdate())-year(Sbir…

微信小程序——二维码推广海报

&#x1f60a;博主&#xff1a;爱学习的Akali King &#x1f60a;本文核心&#xff1a;本地图片和接口返回二维码制作一体化canvas海报 目录 创建一个画布通过canvas API绘制图像细节1 长按保存细节2 创建一个画布 在微信小程序中&#xff0c;我们使用<canvas>标签来创建…

微信小程序web-view嵌入uni-app H5页面,通过H5页面跳转其他小程序如何操作?

1、H5页面代码 wx.miniProgram.reLaunch({ url: /pages/index/index?appId${您的微信小程序appId} });//触发小程序刷新页面获取appId 微信小程序appId查看方法&#xff1a; 1&#xff09;有后台登录权限的情况下&#xff1a;登录微信公众平台后&#xff0c; 微信公众平台微信…

linux——在VMware Workstation中配置固定IP

第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 切换到root用户下&#xff1a;用vim打开文件&#xff0c;进行上面五处修改。 改动后的文件为&#xff1a;

C++刷题第三天

203 移除链表元素 题目描述 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5] 解题思路…

python3开发-火车票分析助手

目录 背景 思路 步骤&#xff1a; 代码示例 总结 背景 随着人们出行需求的增加&#xff0c;火车票的购买和使用变得越来越普遍。然而&#xff0c;对于火车票的信息和数据进行分析&#xff0c;可以帮助我们更好地了解旅行趋势、优化行程规划等。而Python是一门功能强大的编程…

finalshell使用方法,前端vue更新服务器项目

首先我们看看finalshell的整体 上面是xshell一样&#xff0c;可以输命令 上面是WinSCP一样&#xff0c;可以直接拖文件&#xff0c;下载&#xff0c;上传&#xff0c;可视化视图 1.下载服务器文件 服务器文件通过Jenkins打包上去的&#xff0c;首先我们把文件下载到本地 点击…

skimage.io.imread与cv2.imread读取图片的通道顺序不同

先说结论 skimage.io.imread读取的通道顺序为RGB, opencv读取的通道顺序为BGR。 在基于通道处理数据时注意区别。 示例如下&#xff1a; 对于一张彩色的村庄鸟瞰图&#xff0c; 其中道路为蓝色&#xff0c;我们提取出蓝色通道 并将其转为二值图输出&#xff0c;已验证提取出的…

深度学习视角下的视频息肉分割

结直肠癌(CRC)是全球第二大致命癌症和第三大常见的恶性肿瘤&#xff0c;据估计每年会在全球范围内造成数百万人发病和死亡。结直肠癌患者在第一阶段的生存概率超过95%&#xff0c;但在第四和第五阶段却大幅下降到35%以下。因此&#xff0c;通过结肠镜、乙状结肠镜等筛查技术对阳…

mysql基础1——发展起源、数据类型、基础安装

文章目录 一、基本了解1.1 DBMS数据库管理系统1.2 主流关系型数据库1.3 数据表概念1.4 关系型数据库的组成1.5 数据类型1.5.1 数值型1.5.1.1 整数型1.5.1.2 小数型 1.5.2 字符串型1.5.3 日期时间型1.5.4 枚举型 二、yum安装mariadb三、二进制安装mysql 一、基本了解 前提背景&a…

Flutter嵌套地狱

override Widget build(BuildContext context) {return Column(children: <Widget>[Container(height: 45,child: Row(children: <Widget>[SizedBox(width: 30,),Icon(Icons.notifications,color: Colors.blue,),SizedBox(width: 30,),Expanded(child: Text(消息中…