在处理器生成的类中使用库

Oma*_*lak 5 java dependencies android annotations gson

我正在开发一个库来使用注释和处理器生成类.生成的类应该使用Gson谷歌的库.

我的问题是:我应该在哪里添加Gson依赖项?我目前正在将它添加到处理器build.gradle中,但是当生成类时,找不到Gson并且Android Studio建议将其添加到app模块.

的build.gradle所述的处理器:

implementation project(':lib-annotation')
implementation 'com.squareup:javapoet:1.9.0'
implementation 'com.google.code.gson:gson:2.8.1'
implementation 'com.google.auto.service:auto-service:1.0-rc3'
Run Code Online (Sandbox Code Playgroud)

的build.gradle中的应用:

implementation project(':lib-annotation')
annotationProcessor project(':lib-processor')
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢!

PS该项目旨在成为一个图书馆.我希望用户只将我的库包含在他们的gradle文件中,而不是"子依赖".

Oma*_*lak 0

好吧,我终于解决了这个问题!

我必须使用or将依赖项添加到处理器Gsonbuild.gradle中:implementation compile

implementation 'com.google.code.gson:gson:2.8.1'
Run Code Online (Sandbox Code Playgroud)

并使用以下命令将依赖项再次添加到注释compilebuild.gradle 中:

compile 'com.google.code.gson:gson:2.8.1'
Run Code Online (Sandbox Code Playgroud)

我认为它不起作用,因为依赖项位于使用的处理器Gsonbuild.gradle中(不知何故,“传递性”不适用)。因此,我将依赖项放在注释build.gradle中,因为我使用它来包含它并且它有效。annotationProcessor 'lib-processor'Gsonimplementation 'lib-annotation'

希望它会有所帮助