Вставка компонентных модулей в Dagger 2 с помощью Gradle

Что мы имеем:

Проект Java/Gradle с Dagger 2. И интерфейсом некоторых компонентов:

@Singleton
@Component(modules = { 
        ConcreteModule1.class, 
        ConcreteModule2.class,
        ConcreteModule3.class})
public interface CoolComponent
{
    CoolObject getCoolObject();
}

Что мы хотим:

Каждый из наших клиентов получает немного разные продукты, поэтому мы выполнили отдельную задачу для каждой отдельной банки, которую мы выпускаем. Было бы здорово, если бы мы смогли сообщить нашему Компоненту, какие Модули используются из задачи gradle:

@Singleton
@Component(modules = @PutListOfConcreteModulesHere )
public interface CoolComponent
{
    CoolObject getCoolObject();
}

Каждая задача выглядит примерно так (очень упрощенно):

task buildABC{

group 'software-releases'
description 'build for customer ABC'

dependsOn 'generateDaggerClasses'   // custom task btw
dependsOn 'build'
tasks.findByName('build').mustRunAfter 'generateDaggerClasses'    
}

Вернуться к вопросу

Может ли Gradle вставить бетонные модули в CoolComponent (где я положил @PutListOfConcreteModulesHere), перед запуском generateDaggerClasses?


Мы довольно плохо знакомы с Dagger 2, и я должен признать, что наши знания о Gradle довольно поверхностны, поэтому мы благодарны за конструктивные и объясненные ответы. Все еще изучаю основы здесь.

0 ответов

Другие вопросы по тегам