来自 Gradle 库模块的 bean 的 Quarkus 依赖注入失败

Quarkus dependency injection failing with bean from Gradle Library Module

我正在尝试让依赖注入在我的多模块项目中工作,我想在其中从库模块注入一个 bean。但是,它失败了,因为它找不到该 bean。

项目根目录settings.gradle

pluginManagement {
    repositories {
        mavenLocal()
        mavenCentral()
        gradlePluginPortal()
    }
    plugins {
        id 'io.quarkus' version "${quarkusPluginVersion}"
    }
}

include ':service-module'
include ':library-module'

服务模块build.gradle

尝试编译,以及实现

dependencies {
   compile project(":library-module")
// implementation project(":library-module")
}

来自 library-module

的 Bean
import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class LibraryBean {

    public void hello() {
        System.out.println("Hello");
    }
}

服务模块注入发生的地方

@ApplicationScoped
public class Application {

    @Inject
    LibraryBean libraryBean;

}

堆栈跟踪

Unsatisfied dependency for type com.mylibrary.LibraryBean and qualifiers [@Default] - java member: com.myservice.Application#LibraryBean - declared on CLASS bean [types=[com.myservice.Application, java.lang.Object], qualifiers=[@Default, @Any], target=com.myservice.Application]

我不确定这个问题是与 Quarkus 相关还是 CDI 和 Gradle 模块存在的一般问题。

如何让 DI 跨模块工作?

您的库模块中是否有 beans.xml 文件?有关详细信息,请参阅此 question/answer: