Я пытаюсь заставить работать инъекцию зависимостей в моем многомодульном проекте, где я хочу внедрить 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")
}
Бин из библиотеки-модуля
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class LibraryBean {
public void hello() {
System.out.println("Hello");
}
}
сервисный модуль, где происходит инъекция
@ApplicationScoped
public class Application {
@Inject
LibraryBean libraryBean;
}
Stacktrace
Неудовлетворенная зависимость для типа com.mylibrary.LibraryBean и квалификаторов [@Default] - член java: com.myservice.Application # LibraryBean - объявлен в компоненте CLASS [types = [com.myservice.Application, java.lang.Object], квалификаторы = [@Default, @Any], target = com.myservice.Application]
Я не уверен, связана ли эта проблема с Quarkus или с общей проблемой, которая существует с модулями CDI и Gradle.
Как я могу заставить DI работать с модулями?
beans.xmlфайл в модуле библиотеки? См. Этот вопрос / ответ для получения дополнительной информации: stackoverflow.com/a/55513723/742081 - person Ladicek   schedule 04.01.2020