Abd*_*ery 5 android android-gradle-plugin annotation-processor android-module
我有一个 Android 应用程序模块 (A) 和一个 Android 库模块 (B)。(A) 和 (B) 都包含这些相同的依赖项:
dependencies {
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
Run Code Online (Sandbox Code Playgroud)
但是,在我的项目中,模块 (A) 依赖于模块 (B),因此我确实在堆栈溢出中搜索了有关如何实现Don't Repeat Yourself设计模式的信息,以便我仅将这些依赖项包含在模块 (B) 中,我发现这很有用但我没有找到我怎么能做出这种依赖
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1
Run Code Online (Sandbox Code Playgroud)
在这两个模块之间共享,那么我该怎么做呢?
注释处理器是构建时依赖项,但不是运行时依赖项。您不应该强迫您的库的所有用户(及其库的用户)使用特定的注释处理器。与图书馆相比,仅仅因为您正在使用它,并不意味着您的图书馆的用户也必须使用它。
\n在极少数情况下,创建 Gradle 插件来简化用户的构建配置可能是明智的做法。这样的插件可以自动将注释处理器和库添加到项目中。无论如何,即使有效地仅一起使用 \xe2\x80\x93 ,也必须声明两个依赖项 \xe2\x80\x93 可能并不能证明创建此类插件的合理性。
\n您可能决定对整个存储库使用特定的注释处理器。在这种情况下,您可以从以下位置为该存储库中的所有 Gradle 项目启用注释处理器:build.gradle在这种情况下,您可以从根目录中
allprojects {\n pluginManager.withPlugin('java') {\n dependencies {\n implementation 'com.jakewharton:butterknife:8.8.1'\n annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
487 次 |
| 最近记录: |