我的项目中有两个模块:
公共
应用程序
common
依赖于Koin,Koin是一个用于依赖性注入的Kotlin库:
dependencies {
implementation 'org.koin:koin-core:1.0.2'
}
用法示例:
class MyPresenter: KoinComponent {
...
}
dependencies {
implementation project(':common')
}
class MyFragment {
private val presenter = MyPresenter()
}
当我运行./gradlew:app:dependencies
时
debugCompileClasspath
+--- project :common
debugRuntimeClasspath
+--- project :common
| +--- org.koin:koin-core:1.0.2
该依赖项位于runtime
配置中,但在compile
配置中缺少。
显然,我不想在应用程序
中声明Koin依赖项,所以我尝试了几种方法:
dependencies {
api 'org.koin:koin-core:1.0.2'
}
dependencies {
implementation project(path: ':common', configuration: `compile`)
}
不起作用--我不确定这一个,但我希望它能在compile
配置中获得common
的依赖项。
更改compile
的Koin依赖项:
dependencies {
compile 'org.koin:koin-core:1.0.2'
}
工作!依赖项显示在debugcompileclasspath
中,我可以运行应用程序
。
现在我很困惑:
应用程序
不直接使用Koin,所以我认为它不需要依赖项。为什么呢?是否因为MyPresenter
的静态类型是KoinComponent
?API
与不推荐的compile
相同。似乎不是。编译
之外,还有其他方法吗?API
配置是您应该使用并且应该工作的配置API
以及如何构建或访问可消费配置APIelements
或…为了调试它,我建议创建一个简单的项目来重现这个问题,并可以共享,因为在android或kotlin插件中可能有一个bug。
让我们创建一个名为的新模块,并在那里定义CounterService。 app/shared/shared.module.ts 现在我们将引入 SharedModule 到AppModule 和中。 app/lazy/lazy.module.ts 使用此配置,两个模块的组件都可以访问CounterService。 我们将以完全相同的方式在EagerComponent和LazyComponent中使
Velocity 不依赖 jQuery Velocity.js 可以在不引入 jQuery 的情况下单独使用。如果 你需要大部分动画效果能兼容 IE8,就必须引入 jQuery 1×。 它也可以和 Zepto 一起使用,写法和 jQuery 一样: // 无 jQuery 或 Zepto 时,Velocity()方法挂载在 window 对象上 (window.velocity) // ( 第一
我已经集成了CircleCI来在我的应用程序上运行Espresso测试。我从另一个在线github存储库中获取了以下circle.yml文件,并将android构建工具和android版本更改为25。但是,当我在CircleCI服务器上运行构建时,我收到以下错误。我已经在yml文件中授予了执行权限。 我的应用回购结构是 circle.yml(圈.yml): gradle/wrapper/gradl
本文向大家介绍android-gradle 模块依赖,包括了android-gradle 模块依赖的使用技巧和注意事项,需要的朋友参考一下 示例 在多项目中gradle build,您可以与构建中的另一个模块具有依赖关系。 例: 该compile project(':mylibrary')行将名为“ mylibrary”的本地Android库模块声明为依赖项,并要求构建系统在构建应用程序时编译并包
我正在和我的朋友一起做一个智能J项目,我们使用MongoDB 我没有设置这些东西,我从一个存储库中克隆了它。但是我的其他朋友已经让它工作了——都在视窗、OSX和Linux上。只有一个人设置了它。 问题是它不知道什么是莫菲/MongoDB(例如,导入不起作用)。 我做了什么: 重新同步渐变 运行Gradle。生成文件 重新审视项目 使缓存无效并重新启动 它仍然不知道MongoDB是什么。所以我尝试让
我在Maven中有一个相当简单的带有子模块的项目结构: 在中,我定义了所有子模块的属性,如库版本或插件配置: 直接在节点中设置库版本。 在中设置节点。 尝试不同的库版本。 使用以及库是否存在。 在中运行。 在中运行。 在中运行 在中运行。 在中运行。
在使用scalatest时,我遇到了一个奇怪的问题。我有一个带有多个模块的maven项目。如果我直接在模块中执行mvn测试。它可以正常工作,但如果在根文件夹中执行,它会抱怨编译时缺少包(依赖项)。 我的配置如下所示: 插件配置: 如果我从maven scala插件中删除目标,它将编译,但scalatest将找不到测试源并退出,并且没有执行任何测试 : 你知道我做错了什么吗?! 干杯