我将GitHub的Immutables库用于Android开发,现在我也想在后端尝试一下。
在Android中,要使用该库,我需要做的就是:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// immutable entities generation
provided "org.immutables:value:2.5.5" // for annotations
provided "org.immutables:builder:2.5.5" // for annotations
provided "org.immutables:gson:2.5.5" // for annotations
... other dependencies
}
当我尝试将以上依赖项复制到我的Java项目的
build.gradle
中时,出现此错误:Error:(24, 0) Gradle DSL method not found: 'provided()'
我尝试将
provided
替换为compileOnly
和compile
,但是随后未生成带有@Value.Immutable
注释的接口(interface)的实现。我该如何运作?
最佳答案
找到了答案。分享以防万一,这对任何人(或将来对我自己)都有帮助。
首先,我必须按照here所述在IntelliJ中启用注释处理(尽管该选项现在位于Settings > Build, Execution, Deployment > Compiler > Annotation Processors
中)。
之后,以下代码开始实际生成实现:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// immutable entities generation
compile "org.immutables:value:2.5.5" // for annotations
compile "org.immutables:builder:2.5.5" // for annotations
compile "org.immutables:gson:2.5.5" // for annotations
... other dependencies
}
但是,我仍然无法自动将实现导入源文件。
为了允许发现生成的类,我必须右键单击
generated
包中的main
文件夹,然后右键单击Mark Directory As > Generated Sources Root
。