Я пишу собственный плагин и, чтобы протестировать его, хочу внедрить фиктивные реализации. Это не только для тестирования, но и с точки зрения API, я хочу внедрить разные реализации в зависимости от контекста. В настоящее время я использую Gradle 2.6 и понимаю, что он поддерживает некоторую форму внедрения зависимостей. Я не хочу использовать Spring/Guice/HK2, поскольку сам Gradle поддерживает его. Однако я не могу найти никакой информации о том, как внедрять зависимости с помощью API-интерфейсов Gradle 2.6.
Например:
class CustomTask extends DefaultTask {
private SomeInterface interface
@Inject
CustomTask(SomeInterface interface) {}
@TaskAction
public void executeTask() {
interface.executeSomething()
}
}
Итак, по сути, я хочу понять, где определить привязки для разных экземпляров SomeInterface
и механизм для их внедрения в задачу или куда-либо еще, например, в некоторые пользовательские классы.