Here's what I do...
In src/flavor1/java/com/myapp/Modules.java
:
public class Modules {
public static Object[] get(Application app) {
return new Object[] {
new MyAppModule(app),
new Flavor1Module(app)
};
}
}
In src/flavor2/java/com/myapp/Modules.java
:
public class Modules {
public static Object[] get(Application app) {
return new Object[] {
new MyAppModule(app),
new Flavor2Module(app)
};
}
}
In src/main/java/com/myapp/MyAppApplication.java
:
ObjectGraph og = ObjectGraph.create(Modules.get(this));
MyAppModule
has common dependencies. Flavor1Module
and Flavor2Module
can contribute additional dependencies or override ones from MyAppModule
if overrides=true
.