如何在maven中排除jar包中引入的另一个jar包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在maven中排除jar包中引入的另一个jar包相关的知识,希望对你有一定的参考价值。

参考技术A 例如:排除【aaa】jar包中的【b】jar包,可用下面的方式
<dependency>

<groupId>aaa</groupId>
<artifactId>aaa</artifactId>
<version>0.0.0</version>
<exclusions>
<exclusion>
<artifactId>b</artifactId>
<groupId>b</groupId>
</exclusion>
</exclusions>
</dependency>本回答被提问者采纳

求教java maven项目打包引入的问题,求大神解答

我有个maven项目,将其打包成jar包,然后在另外一个maven项目中,在本地将这个jar包引入,再运行后发现找不到所引入的jar包中依赖的第三方库,请问怎么办?

如果在另一个Maven项目中引入了一个打包好的jar包,并且在运行时发现缺少jar包中所依赖的第三方库,有以下几种解决方法。

    使用maven-shade-plugin插件:在打包项目的pom.xml中配置maven-shade-plugin插件,让它将所有的依赖库打包进jar中。

    在引入的jar包的pom.xml中增加第三方库的依赖配置, 编写dependency:unpack命令,将对应的第三方库依赖解压在项目中。

    使用maven-dependency-plugin来解决问题,将依赖库重新复制到本地仓库中, 并在需要使用的项目中通过maven-dependency-plugin来引入这些依赖库。

    在打包好的jar中加入manifest文件,在manifest文件中配置Class-Path,将第三方库路径配置在Class-Path中,然后将这些第三方库放在同一目录下。

    将jar包中的第三方库放在项目的lib目录下,然后在项目的编译打包的时候加上lib路径,这样可以保证第三方库能够被项目读取到.

选择其中一种方法来实现可以根据具体的项目情况来确定,并且在解决问题的时候需要结合项目的特点进行选择.

参考技术A 首先,您可以确认您引入的jar包是否已经将所依赖的第三方库打包进去。如果没有,可以在pom.xml文件中配置maven-assembly-plugin插件来将依赖的第三方库也一并打包进去。
其次,如果您已经将依赖的第三方库打包进去了,但是仍然找不到,可以尝试使用maven-dependency-plugin插件来解决依赖冲突。
最后,如果仍然无法解决,可以尝试使用maven-shade-plugin插件来将依赖的第三方库打包成一个单独的jar包,然后在另一个maven项目中引入这个单独的jar包。
希望这些建议能够帮助您解决问题。
参考技术B

在将一个 maven 项目打包成 jar 包并在另外一个 maven 项目中使用时,需要确保 jar 包中包含了其所依赖的第三方库。

有几种可能会导致这个问题:

    在打包 jar 包时未包含依赖的第三方库,解决方法是使用 maven-assembly-plugin 或 maven-shade-plugin 插件来打包时包含依赖的第三方库。

    将 jar 包安装到本地仓库后,另外一个项目的 pom.xml 文件中没有声明对该 jar 包的依赖,解决方法是在另外一个项目的 pom.xml 文件中添加对该 jar 包的依赖声明。

    如果上述都没有解决问题,考虑检查 jar包是否已经正确安装到本地仓库了,并且确保该项目的dependencyManagement是否引用了这个jar。

    如果您已经采取了上述措施并且问题仍然存在,您可以将错误信息以及相关代码和配置文件发给我以更详细地帮助您。

以上是关于如何在maven中排除jar包中引入的另一个jar包的主要内容,如果未能解决你的问题,请参考以下文章

Maven引入本地依赖Jar到可执行Jar包中

Maven引入本地Jar包并打包进War包中

求教java maven项目打包引入的问题,求大神解答

如何解决maven 与 tomcat jar包冲突

如何配置maven pom文件来解决jar包冲突

如何从 maven 项目中自动排除未使用的 jar 文件?