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

Quarkus依赖项注入失败,bean来自Gradle库模块,gradle,dependency-injection,shared-libraries,multi-module,quarkus,Gradle,Dependency Injection,Shared Libraries,Multi Module,Quarkus,我试图让依赖注入在我的多模块项目中工作,我想从库模块中注入一个bean。但是,它失败了,因为它找不到bean 项目根settings.gradle pluginManagement { repositories { mavenLocal() mavenCentral() gradlePluginPortal() } plugins { id 'io.quarkus' version "${quarkusPlu

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

项目根settings.gradle

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

include ':service-module'
include ':library-module'
import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class LibraryBean {

    public void hello() {
        System.out.println("Hello");
    }
}
服务模块build.gradle

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

include ':service-module'
include ':library-module'
import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class LibraryBean {

    public void hello() {
        System.out.println("Hello");
    }
}
尝试编译,以及实现

dependencies {
   compile project(":library-module")
// implementation project(":library-module")
}
来自库模块的Bean

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

include ':service-module'
include ':library-module'
import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class LibraryBean {

    public void hello() {
        System.out.println("Hello");
    }
}
服务模块发生注入的位置

@ApplicationScoped
public class Application {

    @Inject
    LibraryBean libraryBean;

}
Stacktrace

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

include ':service-module'
include ':library-module'
import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class LibraryBean {

    public void hello() {
        System.out.println("Hello");
    }
}
com.mylibrary.LibraryBean和 限定符[@Default] -java成员:com.myservice.Application#LibraryBean -在类bean[types=[com.myservice.Application,java.lang.Object]上声明,限定符=[@Default,@Any], target=com.myservice.Application]

我不确定这个问题是否与Quarkus有关,或者是CDI和Gradle模块存在的一般问题


如何使DI在accross模块中工作?

您的库模块中是否有
beans.xml
文件?有关更多信息,请参阅此问题/答案:

您的库模块中是否有
beans.xml
文件?查看此问题/答案了解更多信息:@Ladicek噢,亲爱的,非常感谢。我已经在我的库的META-INF/目录中添加了一个空的bean.xml,它现在运行良好!让我复制我的评论作为答案,这样你就可以将问题标记为已回答。