shade解决mybatis包冲突问题及项目引用的方法

 更新时间:2020年08月03日 11:14:32   作者:张占岭  
这篇文章主要介绍了shade解决mybatis包冲突问题及项目引用的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

之前写过shade解决mybatis包冲突的文章,主要讲了如何为一个第三方包去打一个shade包,然后它可以解决相同包的不同版本之间的冲突问题;而今天主要说一下在项目里如何引用这个包。
1 如果只是使用包里的资源,而不使用这个包的依赖包,需要这样引用即可

 <dependency>
   <groupId>com.lind</groupId>
   <artifactId>a-start-test-depend-shade</artifactId>
   <version>1.0.4</version>
   <scope>system</scope>
   <systemPath>${project.basedir}/src/main/resources/a-start-test-depend-shade-1.0.4.jar</systemPath>
  </dependency>

2 如果在引用包里,还需要使用它的依赖包,需要把system去掉

<dependency>
   <groupId>com.lind</groupId>
   <artifactId>a-start-test-depend-shade</artifactId>
   <version>1.0.4</version>
   <systemPath>${project.basedir}/src/main/resources/a-start-test-depend-shade-1.0.4.jar</systemPath>
  </dependency>

3 注意:如果你的shade项目和你的当前项目在一起的话,可能能有问题

你可以把shade项目打完jar包之后,移除module,然后再试一下,就可以看到你的jar包里的对象被shade了

4 pom配置文件里的scope是作用域的意思,下面介绍一下几种scope

  • compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去
  • test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit
  • runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段
  • provided:打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作
  • system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径

总结

到此这篇关于shade解决mybatis包冲突问题及项目引用的方法的文章就介绍到这了,更多相关shade解决mybatis包冲突内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot如何查找配置文件路径的顺序和其优先级别

    springboot如何查找配置文件路径的顺序和其优先级别

    此文是在工作中遇到的关于springboot配置文件的问题,在网上查阅资料和自己测试之后记录的,以便日后查阅。希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Maven本地打包war包实现代码解析

    Maven本地打包war包实现代码解析

    这篇文章主要介绍了Maven本地打包war包实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • SpringBoot Admin使用及心跳检测原理分析

    SpringBoot Admin使用及心跳检测原理分析

    这篇文章主要介绍了SpringBoot Admin使用及心跳检测原理分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 一个Java配置文件加密解密工具类分享

    一个Java配置文件加密解密工具类分享

    在 JavaEE 配置文件中,例如 XML 或者 properties 文件,由于某些敏感信息不希望普通人员看见,则可以采用加密的方式存储,程序读取后进行解密
    2014-04-04
  • Java中增强for循环在一维数组和二维数组中的使用方法

    Java中增强for循环在一维数组和二维数组中的使用方法

    下面小编就为大家带来一篇Java中增强for循环在一维数组和二维数组中的使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • Java防止非法盗链的几种解决方案

    Java防止非法盗链的几种解决方案

    防止别人通过一些技术手段盗用本站的资源,本文主要介绍了Java防止非法盗链的几种解决方案,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 基于mybatis batch实现批量提交大量数据

    基于mybatis batch实现批量提交大量数据

    这篇文章主要介绍了基于mybatis batch实现批量提交大量数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • SWT(JFace) Wizard(Eclipse插件编程必备)

    SWT(JFace) Wizard(Eclipse插件编程必备)

    SWT(JFace)小制作:Wizard(Eclipse插件编程必备)
    2009-06-06
  • java抓取网页数据示例

    java抓取网页数据示例

    要通java获取整个网页的html内容,或者某个网络文件的内容,可以使用java提供的HttpURLConnection类来实现对网页内容的抓取
    2014-03-03
  • Java使用Callable接口实现多线程的实例代码

    Java使用Callable接口实现多线程的实例代码

    这篇文章主要介绍了Java使用Callable接口实现多线程的实例代码,实现Callable和实现Runnable类似,但是功能更强大,具体表现在可以在任务结束后提供一个返回值,Runnable不行,call方法可以抛出异,Runnable的run方法不行,需要的朋友可以参考下
    2023-08-08

最新评论