Mapstruct 导致 quarkus-maven-plugin 发出 "unrecommended usage of private members" 警告

Mapstruct results in "unrecommended usage of private members" warning by quarkus-maven-plugin

如何解决 quarkus maven 插件的以下警告?

Found unrecommended usage of private members (use package-private instead) in application beans

我的代码如下所示:

@Mapper(componentModel = "cdi", uses = SampleFactory.class)
public interface SampleMapper {
// mapping functions
}

生成的 Impl class 如下所示:

@ApplicationScoped
public class SampleMapperImpl implements SampleMapper {

    @Inject
    private SampleFactory sampleFactory;
    // mapping functions
}

警告建议将 sampleFactory 成员设为包私有。是否有可能配置它,例如带注释? 当前的 mapstruct (1.4.2) documentation 声明您只能配置注入策略。但是,配置注入成员的可见性是不可能的 - 是吗?

设置:

切换到构造函数注入策略将解决警告。 MapStruct也推荐:

It is recommended to use constructor injection to simplify testing.

私有成员的字段注入要求 CDI 实现使用反射。 Quarkus 试图避免反射,以便能够使用 GraalVM 的原生图像编译器进行编译。另外,这里根本不需要使用反射,所以我们应该避免它。