来自 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:
我正在尝试让依赖注入在我的多模块项目中工作,我想在其中从库模块注入一个 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
的 Beanimport 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: