Quarkus依赖注入因Gradle库模块中的bean而失败

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

我试图在我的多模块项目中使用依赖项注入,在该项目中我想从库模块中注入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");
    }
}

服务模块发生注入的地方

@ApplicationScoped
public class Application {

    @Inject
    VaultConnector vaultConnector;

}

Stacktrace

对com.mylibrary.LibraryBean和限定词[@Default]-Java成员:com.myservice.Application#LibraryBean-在CLASS bean [types = [com.myservice.Application,java.lang.Object],qualifiers = [@ Default,@Any],上声明,target = com.myservice.Application]

我不确定此问题是否与Quarkus有关,还是CDI和Gradle模块存在的一般问题。

如何使DI跨模块工作?

gradle dependency-injection shared-libraries multi-module quarkus
1个回答
0
投票

您的库模块中是否有beans.xml文件?有关更多信息,请参见此问题/答案:https://stackoverflow.com/a/55513723/742081

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