我的项目取决于javax.ws.rs-api:2.0.1
和hadoop-mapreduce-client-core:3.1.0
,而后者又取决于jsr311-api:1.1.1
。
My project
-> javax.ws.rs-api:2.0.1
-> hadoop-mapreduce-client-core:3.1.0
-> jsr311-api:1.1.1
问题在于javax.ws.rs.core.Response
和javax.ws.rs-api:2.0.1
中都包含类jsr311-api:1.1.1
,但是它们具有不同的方法签名。编译项目时,Maven尝试在readEntity(Class<T> entityType)
中找到jsr311-api
方法而不是javax.ws.rs-api
,这导致了NoSuchMethodError
。
我通过将jsr311-api
从依赖项hadoop-mapreduce-client-core
中排除来解决了这个问题。但是我想了解为什么Maven尝试使用jsr311-api
?有依赖关系类路径吗?我怎么找到它?
PS:我知道Maven解决相同工件不同版本之间的依赖关系冲突的机制,但是这个问题有所不同。