Вставка компонентных модулей в Dagger 2 с помощью Gradle - PullRequest
0 голосов
/ 28 ноября 2018

Что у нас есть:

Проект 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 довольно поверхностны, поэтому мы благодарны за конструктивные и объясненные ответы.Все еще изучаю основы здесь.

...