仅对测试有歧义依赖性

问题描述 投票:0回答:1

我将Spring-DI注释替换为Quarkus-CDI注释。当应用正常启动时,到目前为止,未检测到功能损失,由于多个(主要是重复)错误,导致测试无法运行,例如:

[..]类型com.fasterxml.jackson.databind.ObjectMapper和限定符[@Named(value =“ objMapper”)]-Java成员:com.proj.repository.MyDao#()-在CLASS Bean [types = [com.proj.repository.MyElasticRepository,com.proj.repository.DomainDao,java.lang.Object,com.proj.repository.MyDao,com.proj.repository.ElasticRepository]中声明,限定符= [@Default,@Any],target = com.proj.repository.MyDao]-可用的豆:

-生产者方法bean [types = [java.io.Serializable,com.fasterxml.jackson.core.ObjectCodec,java.lang.Object,com.fasterxml.jackson.databind.ObjectMapper,com.fasterxml.jackson。 core.Versioned,com.fasterxml.jackson.core.TreeCodec],限定符= [@ Named(value =“ objMapper”),@ Default,@ Any],target = com.fasterxml.jackson.databind.ObjectMapper getMapper(), declaringBean = com.proj.config.JacksonConfig]

-生产者方法bean [types = [java.io.Serializable,com.fasterxml.jackson.core.ObjectCodec,java.lang.Object,com.fasterxml.jackson.databind.ObjectMapper,com.fasterxml.jackson。 core.Versioned,com.fasterxml.jackson.core.TreeCodec],限定符= [@ Named(value =“ objMapper”),@ Default,@ Any],target = com.fasterxml.jackson.databind.ObjectMapper getMapper(), declaringBean = com.proj.config.JacksonConfig]

(1)请注意,两个粗体项目exactly相同。(2)几乎没有其他类型会产生相同的错误(经过调整的课程类型)

映射器定义为:

public class JacksonConfig implements SerializerAdapter<ObjectMapper> {
    ...

    @Named("objMapper")
    @Produces
    public ObjectMapper getMapper() {
        return ...
    }
}

您能解释为什么会这样吗?如何解决此问题,以便测试能够运行?如果假设两个错误的声明完全相同,您能建议一种解决此类错误的方法吗?

java cdi quarkus
1个回答
0
投票

您是否已完成应用程序的彻底清理?

因为看起来很像您有两个版本的产生bean的类。

© www.soinside.com 2019 - 2024. All rights reserved.