Maven中使用<version>LATEST</version>自动依赖最新版本引发的问题

今天在打包项目的过程中出现了编译问题,奇怪的是这个项目已经好久没有修改过了,报错如下。

找不到符号
[ERROR]   符号:   方法 intent(java.lang.String)
[ERROR]   位置: 类型为com.paypal.orders.OrderRequest的变量 orderRequest

找不到符号
[ERROR]   符号:   方法 amount(com.paypal.orders.AmountWithBreakdown)
[ERROR]   位置: 类 com.paypal.orders.PurchaseUnitRequest

原因在于设置外部依赖包的版本时使用了LATEST,这样每次便会尝试拉取最新版本的包。

<dependency>
    <groupId>com.paypal.sdk</groupId>
    <artifactId>checkout-sdk</artifactId>
    <version>LATEST</version>
</dependency>

问题原因:

问题的错误提示很明确,是找不到paypal的sdk方法,很自然的就把问题指向了版本依赖上面,经过一番搜索后在Maven仓库中发现checkout-sdk这个包在2019年7月份的时候发布了1.0.1版本,这个版本在一些功能上没有向上兼容旧版本,导致项目中依赖了1.0.0版本所使用的sdk,再依赖了新版本后便出现了编译问题。

找到问题原因之后,我们只需要把版本号改成原来的旧版本便可以了。

<dependency>
    <groupId>com.paypal.sdk</groupId>
    <artifactId>checkout-sdk</artifactId>
    <version>1.0.0</version>
</dependency>

建议

在依赖外部包的时候,版本号不要直接写LATEST,要使用固定的版本号,否则有可能出现包升级,导致不兼容的问题。

原文地址:https://www.cnblogs.com/lingyejun/p/11286143.html

时间: 2024-10-09 07:16:47

Maven中使用<version>LATEST</version>自动依赖最新版本引发的问题的相关文章

maven项目,去除jar包中的不想要的依赖关系(Document root element &quot;beans&quot;, must match DOCTYPE root &quot;null&quot;. )

maven dependencies中并不会删除 以下方法maven dependencies中并不会删除,可能程序引入的时候,会去掉这种依赖(猜的) 解释: 就是说项目中要用到某一个a.jar包,通过maven引入了之后,也自动的导入了该jar包所依赖的包,这里就会存在一个问题, 如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办 法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有

maven项目,去除jar包中的不想要的依赖关系

解释:就是说项目中要用到某一个a.jar包,通过maven引入了之后,也自动的导入了该jar包所依赖的包,这里就会存在一个问题,如果a.jar包依赖b.jar这个项目的1.0版本,可是我的项目中已经有b.jar这个项目2.0的版本了,这里就会造成冲突,解决的办法是去除a.jar包依赖b.jar这个项目的1.0版本的依赖关系,让项目使用我已有的包. 最近搭一个springmvc4.x的maven环境,由于要用到webserice,打算整合jersey做,在导入jersey-spring.jar时出

Maven中的可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)

我们知道,maven的依赖关系是有传递性的.如:A-->B,B-->C.但有时候,项目A可能不是必需依赖C,因此需要在项目A中排除对A的依赖.在maven的依赖管理中,有两种方式可以对依赖关系进行,分别是可选依赖(Optional Dependencies)以及依赖排除(Dependency Exclusions).     一.可选依赖     当一个项目A依赖另一个项目B时,项目A可能很少一部分功能用到了项目B,此时就可以在A中配置对B的可选依赖.举例来说,一个类似hibernate的项目

如何在Maven中配置Spring依赖

如何在Maven中配置Spring依赖 *前言: 这篇文章讨论了如何在Maven配置Spring的一些细节,这里介绍了一些主要的Maven依赖管理内容,当然还存在一些没有讨论到的内容,不过这篇文章应该是在项目中使用Spring的一个好的起点.最新的Spring发布版可以在Maven仓库中找到.* 在Maven中Spring的基础配置 Spring是高度模块化的,可以单独使用Spring的某个库而不需要依赖Spring的其他库.比如,使用Spring Context库不需要依赖Spring Per

maven 中的工程依赖和层级依赖?

一.什么是工程依赖? 思考问题?1.1一旦开始分模块开发的时候,之前的所有包都会被拆分成一个一个的项目 model mapper service ... 其实mapper需要model的支持,怎么解决问题? [使用工程依赖] 在mapper项目中的pom.xml文件中以jar包的形式引入model项目即可 一旦使用量的工程依赖,就会出现层级依赖 简单的依赖,关系图. web(controller)----->service-------->mapper------->model 1.2具

The android gradle plugin version 2.3.0-beta2 is too old, please update to the latest version.

编译项目的时候,报如下错误: Error:(1, 1) A problem occurred evaluating project ':app'. > Failed to apply plugin [id 'com.android.application'] > Could not create plugin of type 'AppPlugin'. > The android gradle plugin version 2.3.0-beta2 is too old, please up

(转)makefile中的自动依赖规则

Makefile生成自动依赖的方法有两种: 1.  将所有.o文件的依赖关系写入单独文件,然后在Makefile中调用该文件 2.  每个.c文件对应一个.d文件,将依赖关系写入.d文件中 一.对于第一种方法,Makefile的写法如下: #file start CC = gcc SRCS := $(wildcard *.c) OBJS := $(patsubst %.c,%.o, $(SRCS)) all: main main: $(OBJS) $(CC) -o main $(OBJS) .d

eclipse中maven项目jar包不会自动下载解决办法

Eclipse中maven从远程仓库中下载jar包有时会很慢,有些甚至进度停止不动,这个时候我们可能会终止当前下载,但是终止jar包下载后会出现一个问题,再次打开Eclipse时,你会发现提示你项目中依赖的jar包找不到,如下图所示,项目右键打--->Build Path--->Configure Build Path 打开项目的 Java Build Path 在 Libraries 页签下 Maven Dependenicies 你会发现报错提示 依赖的jar包 missing如下图所示

maven中maven dependencies中依赖出现了项目

maven 中maven dependencies中依赖出现了项目,把依赖的项目关掉,项目消失,但是还是无法打包 ,出现的错误如图.说明:依赖的项目为project-dao  打包的项目为project-service  都在project-parent中有依赖. project-dao是可以打包成功的.project-service中依赖dao的jar包也可以过 来. [INFO] Scanning for projects... [INFO]