我创建了一个名为my-network-library
的简单库,其中有两个类。第一个是称为BaseNetworkModule
的Hilt模块
kotlin prettyprint-override">@Module
@InstallIn(ApplicationComponent::class)
object BaseNetworkModule {
// Client
@Singleton
@Provides
fun provideOkHttpClient(): OkHttpClient {
return OkHttpClient.Builder()
// my default okhttp setup goes here
.build()
}
}
第二个是一个简单的类。
class MyAwesomeClass {
fun doMagic() {
// magic code goes here
}
}
现在我想在我的一个应用程序中使用myaweSomeClass
。所以我在应用程序中添加了依赖项。
implementation "com.theapache64:my-awesome-library-1.0.0"
@Module
@InstallIn(ApplicationComponent::class)
object NetworkModule {
@Singleton
@Provides
fun provideOkHttpClient(): OkHttpClient {
return OkHttpClient.Builder()
// CUSTOM CONFIG GOES HERE
.build()
}
}
所以我的问题是
@module
的include
?@module(includes=XXXModule)
为什么库模块的依赖项进入应用程序模块而不使用@module的include?
因为Hilt的设计对于一个普通的android开发人员来说是尽可能简单的。
Hilt是一个简单的家伙:他在编译后的代码中看到@module@installin
并使用它。将@installin
视为常规Dagger2中的include
。只是放在另一个地方。
我在本地发布了一个依赖项。依赖项位于路径上 我认为这是Windows上的默认路径。 现在,在另一个项目中,我尝试使用这个库。我的<code>构建。gradle如下所示(以及其他依赖项) 我收到构建错误,某些类不存在等... 这不足以从本地存储库中识别依赖项吗? 我也为其他依赖项使用远程存储库,但工件名称版本是唯一的(com.mycompany:mylibrary:1.0)。我希望从本地存储库中找到
我有这样配置的父pom: 我的孩子波姆: 我想在我的类路径中使用4.3.5版本,因为目前我收到错误消息,不应修改父版本: 任何想法如何防止覆盖4.2.9版本?
我正在使用()。有一些树节点,必须禁用这些节点才能进行选择。我试过选择活动,但它不起作用。更多信息请找到下面的代码。 如何阻止某些进行任何鼠标和键盘选择?
我有一个具有2级层次结构的TreeView控件。如果选择了第二级的项目,并且用户单击了另一个项目,我需要询问他是否确定要移动到另一个项目。如果他的答案是“否”,我需要阻止选择另一个TreeViewItem。 我试着这样做: 以一种有效的方式。但是,问题是我得到了两次OnMouseDown事件:第一级项目和第二级项目。例如,对于这棵树:俄罗斯-莫斯科-皮特美国-纽约-波士顿如果我单击波士顿,我将获得
我正在从事一个Spring项目,其中单元测试有自己的配置,称为UnitTestConfig,它有几个定义类似于主应用程序文件的bean(几乎是一个副本)。保持结构不变,我正在对主应用程序服务器代码进行一些更改,但是这会在UnitTestConfig中引发错误,因为它没有注入所需的bean。这些bean没有在单元测试中使用,有没有办法阻止UnitTestConfig尝试注入这些bean?这是一个巨大
我在父母pom中有一个依赖管理部分,比如 还有一个孩子pom 我试图使用强制执行器插件防止这种在子pom中重写,只允许在父级中设置这些,但一直无法。我希望这会使构建失败。有可能吗,使用那个插件或其他方式? 还有DependencyConvergence,它强制所有版本都是相同的,但这太严格了,因为我不想控制所有可传递的依赖项,只想控制显式定义的依赖项。 如果我能阻止在子pom中引入任何新的依赖项,