问题描述
我正在尝试通过在android studio中创建一个小的库(即“ Java”库)来学习注释处理。 但是,当我创建一个新的Java库并尝试获取所有必需的依赖项(例如APT,Javax,google.auto)时,我遇到了麻烦。 是否有人对我应该做些什么有所了解/或在github上使用build.gradle注释处理库/应用程序的示例? 谢谢
错误(请记住,我的应用程序确实使用了Gradle提供的方法)
Error:(24, 0) Gradle DSL method not found: 'provided()'
Possible causes:<ul><li>The project 'MVPDagger2' may be using a version of Gradle that does not contain the method.
<a href="open.wrapper.file">Open Gradle wrapper file</a></li><li>The build file may be missing a Gradle plugin.
<a href="apply.gradle.plugin">Apply Gradle plugin</a></li>
如果我删除“提供”行,则会出现此错误...
Error:Cause: processor - provide a fully qualified proc class.
我的Gradle文件
apply plugin: 'java'
apply plugin: "com.ewerk.gradle.plugins.annotation-processor"
buildscript{
dependencies{
classpath "gradle.plugin.com.ewerk.gradle.plugins:annotation-processor-plugin:1.0.0"
}
repositories {
maven {
mavenLocal()
mavenCentral()
url "https://plugins.gradle.org/m2/"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile group: 'com.google.auto', name: 'auto-common', version: '0.4'
provided 'org.glassfish:javax.annotation:10.0-b28'
}
这将使build.graddle起作用:
apply plugin: 'java'
//apply plugin: "com.ewerk.gradle.plugins.annotation-processor"
buildscript{
// dependencies{
// classpath "gradle.plugin.com.ewerk.gradle.plugins:annotation-processor-plugin:1.0.0"
// }
repositories {
maven {
mavenLocal()
mavenCentral()
url "https://plugins.gradle.org/m2/"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile group: 'com.google.auto', name: 'auto-common', version: '0.4'
// provided 'org.glassfish:javax.annotation:10.0-b28'
}
任何帮助表示赞赏!
1楼
关于问题的第一部分。
要在构建脚本中使用provided
范围,请首先声明它,例如:
configurations {
provided
}
这是一篇有趣的文章: :
关于插件本身,似乎您缺少处理器的配置部分,例如:
annotationProcessor {
library "com.querydsl:querydsl-apt:4.0.0"
processor "com.querydsl.apt.morphia.MorphiaAnnotationProcessor"
sourcesDir "src/morphia/java"
}
摘自项目页面的内容: :