gradle - Quarkus 依赖注入(inject)因 Gradle 库模块中的 bean 失败

标签 gradle dependency-injection shared-libraries multi-module quarkus

我正在尝试在我的多模块项目中进行依赖项注入(inject),我想从库模块注入(inject)一个 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")
}

来自库模块的 Bean

import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class LibraryBean {

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

服务模块发生注入(inject)的地方

@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 文件吗?有关更多信息,请参阅此问题/答案:https://stackoverflow.com/a/55513723/742081

关于gradle - Quarkus 依赖注入(inject)因 Gradle 库模块中的 bean 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59591090/

相关文章:

java - Gradle 不会从存储库导入 jargs

C++ -malign-double 编译器标志

c++ - 将 .so 合并到另一个 .so 中而不依赖?

Android 单元测试不适用于 Android 库项目

android - 当我想导入项目时成绩同步失败

c# - ASP.NET WEB API 启动类

java - Spring 的 AuthenticationManager 未正确注入(inject)

jsf - ManagedProperty 未注入(inject) @FacesConverter

java - HTML Spanner 。合并到 Eclipse 项目中

android - Gradle同步错误Android Studio