在我的 android 库项目中,我com.github.dcendents:android-maven-gradle-plugin:1.5
用来将我的库安装到我的本地 maven 存储库中,这一直运行良好。现在,由于各种与 NDK 相关的原因,我不得不切换到gradle-experimental-0.8.2 插件。这个版本的 gradle 插件使用了新的语法,例如model
块围绕着android
块。
问题是,当使用这种新语法时,我无法让我的 Maven 工件任务工作,例如sourcesJar
直接从示例中获取的任务:
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
这不再有效,因为没有 block android
。我以为我只需要更改为新语法,例如model.android.sources.main.java.source.srcDirs
,但没有运气。事实上,它说could not get unknown property 'android' for task 'lib:model' of type org.gradle.api.reporting.model.ModelReport
。
我也有更简单的陈述,例如
version = android.defaultConfig.versionName
这也不适用于android.defaultConfig
nor model.android.defaultConfig
。
我在这里做错了什么?当我无法像以前使用稳定的 gradle 版本那样引用块中定义的变量时,感觉就像我误解了 gradle/groovy 的基本工作原理。我认为该android
块只是在model
块内向下移动了一级间接,那么为什么我不能引用类似的东西model.android.defaultConfig.versionName
?