В приведенном выше коде есть несколько незначительных заблуждений / ошибок, вот рабочая реализация:
Application.java:
component = DaggerComponentClass.builder().classModule(new ModuleClass()).build();
Сгенерированный класс будет назван DaggerComponentClass
, а не DaggerCompClassComponent
. Если вы не можете запустить свое приложение в Android Studio, чтобы его собрать, попробуйте в меню Build-> Clean project и Build-> Rebuild project. Если все в порядке, Dagger скомпилирует DaggerComponentClass
, который будет находиться в том же пакете, что и ComponentClass
.
ComponentClass.java:
@Component(modules = ModuleClass.class)
public interface ComponentClass {
void inject(AClassThatShouldGetInstancesInjected instance);
}
Компонент в Dagger2 имеет методы с именем inject
, которые получают экземпляр для вставки в него экземпляров, а не наоборот. В приведенном выше коде класс AClassThatShouldGetInstancesInjected
обычно вызывает componentClass.inject(this);
, чтобы получить экземпляры, внедренные в себя.
ModuleClass.java:
@Module
public class ModuleClass {
@Provides
@Singleton
public Interceptor provideInterceptor() {/*code*/}
//Your Providers...
}
Модуль корректен в вашем коде, убедитесь, что он аннотирован.
Вам нужен узкий или частичный клон , но, к сожалению, он еще не поддерживается.
Если у вас уже есть большой репозиторий, и вы понимаете, что имеет смысл разделить его на несколько меньших репозиториев, тогда вы можете использовать расширение convert для преобразования Mercurial в Mercurial . Обратите внимание, что при этом создается новый репозиторий foo
, и вы не можете перемещать / тянуть между your-big-repo
и foo
.
Расширение преобразования
не включено по умолчанию, поэтому добавьте следующее в файл hgrc
вашего репозитория или файл mercurial.ini
:
[extensions]
hgext.convert=
Затем создайте ]карта. txt
файл с
include "libs/foo"
rename "libs/foo" .
(обратите внимание, что косые черты можно использовать даже в Windows) и запустить
$ hg convert --filemap map.txt your-big-repo foo
. Это сделает foo
репозиторием с полной историей libs / foo
из your-big-repo
.
Если вы хотите удалить все свидетельства foo
из your-big-repo
, вы можете выполнить другое преобразование, используя exclude libs / foo
, чтобы получить избавиться от каталога.
Если у вас есть несколько подобных репозиториев и вы хотите использовать их как единое целое, вам следует посмотреть на подхранилища . Эта функция позволяет вам включать в проверку другие репозитории - аналогично тому, как работает svn: externals
. Следуйте рекомендациям на этой вики-странице.
Если вы хотите удалить все свидетельства foo
из your-big-repo
, вы можете выполнить другое преобразование, используя exclude libs / foo
, чтобы получить избавиться от каталога.
Если у вас есть несколько подобных репозиториев и вы хотите использовать их как единое целое, вам следует посмотреть на подхранилища . Эта функция позволяет вам включать в проверку другие репозитории - аналогично тому, как работает svn: externals
. Следуйте рекомендациям на этой вики-странице.
Если вы хотите удалить все свидетельства foo
из your-big-repo
, вы можете выполнить другое преобразование, используя exclude libs / foo
, чтобы получить избавиться от каталога.
Если у вас есть несколько подобных репозиториев и вы хотите использовать их как единое целое, вам следует посмотреть на подхранилища . Эта функция позволяет вам включать в проверку другие репозитории - аналогично тому, как работает svn: externals
. Следуйте рекомендациям на этой вики-странице.
svn: externals
. Следуйте рекомендациям на этой вики-странице. Эта функция позволяет вам включать в проверку другие репозитории - аналогично тому, как работает svn: externals
. Следуйте рекомендациям на этой вики-странице. Невозможно, hg clone
клонирует весь репозиторий.
Вы можете взглянуть на расширение вспомогательного репозитория, которое позволяет вам иметь репозитории внутри репозиторий, который может соответствовать вашим потребностям.
Вместо частичного клонирования вы можете использовать Convert Extension для разделения ваше репо в несколько репозиториев по дополнительным репозиториям.
В частности, см. раздел Преобразование из Mercurial :
Также полезно фильтровать репозитории Mercurial, чтобы получить подмножества существующего. Например, чтобы преобразовать подкаталог subfoo репозитория foo в репозиторий с его собственной жизнью (с сохранением полной истории), выполните следующие действия:
$ echo include subfoo> / tmp / myfilemap $ echo переименовать subfoo. >> / tmp / myfilemap $ hg convert --filemap / tmp / myfilemap / path / to / repo / foo / tmp / mysubfoo-repo