我一直在尝试将余烬应用程序从@Singleton
@Component(modules = [AndroidInjectionModule::class, ModuleA::class, ModuleB::class, ActivityModule::class])
interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
fun application(application: Application): Builder
fun build(): AppComponent
}
fun inject(app: App)
}
@Module(subcomponents = [Subcomponent::class])
class ModuleB {
@Singleton
@Provides
fun provideDepB(): DepB {
return DepB(Random.nextInt())
}
@Singleton
@Provides
fun provideObjectWithDepB(value: DepB): ObjectWithDepB {
return ObjectWithDepB.newInstance(value)
}
}
@Subcomponent(modules = [SubcomponentModule::class])
@CustomScope
interface Subcomponent {
@Subcomponent.Builder
interface Builder {
fun subcomponentModule(subModule: SubcomponentModule): Builder
fun build(): ru.rsb.daggerproject.Subcomponent
}
}
@Module
class SubcomponentModule {
@CustomScope
@Provides
fun provideSuperObject(value: ObjectWithDepB): SuperObject = SuperObject.newInstance(value)
}
升级到2.18
,我只是想知道我是否选择了正确的余烬版本3.4.4
?任何回应都非常感激。另外,如果我从3.4.4
跳到2.18
,可能会遇到什么不利条件或问题?
答案 0 :(得分:1)
最新的长期支撑为3.8。这是版本cycle。如果适合,您可以跳至3.8。 有一个名为ember-cli-update的插件。它会自动应用更改。您也可以checkout观看ember博客以了解更改。
答案 1 :(得分:1)
我个人的建议是从一个LTS升级到下一个LTS版本。很棒的video from Ember Map讨论了升级余烬应用程序的绝佳策略,如果链接过时,我将在此处进行总结。
升级所有与向前兼容的软件包
一次升级一个第三方依赖性和附加组件
使用ember-cli-update升级Ember CLI和朋友
在我看来,请使用ember-cli-update --to next-lts-version-here
。升级到LTS后,请修复折旧和测试,直到全部变为绿色,然后继续。我在周末从2.16-> 3.8开始使用此过程