Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Сбой внедрения зависимостей Quarkus с bean-компонентом из модуля библиотеки Gradle

Автор вопроса: Marian KlühspiesОтветов: 1

Я пытаюсь заставить работать инъекцию зависимостей в моем многомодульном проекте, где я хочу внедрить 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 Ladicek 04.01.2020
  • @Ladicek, дорогой, спасибо тебе большое. Я добавил пустой файл bean.xml в каталог META-INF / моей библиотеки, и теперь он работает. Marian Klühspies 04.01.2020
  • Хороший! Позвольте мне скопировать свой комментарий в качестве ответа, чтобы вы могли отметить вопрос как ответ. Ladicek 04.01.2020

gradledependency-injectionquarkusmulti-moduleshared-libraries

Ответы

Ответ 1 · рейтинг 1 · Ladicek

У вас есть beans.xml файл в модуле библиотеки? См. Этот вопрос / ответ для получения дополнительной информации: https://stackoverflow.com/a/55513723/742081

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы