在我的android库项目中,我使用com.github.dcendents:android-maven-gradle-plugin:1.5
将我的库安装到我当地的maven repo,这一直都很好。现在,由于各种与NDK相关的原因,我不得不切换到gradle-experimental-0.8.2 plugin。此版本的gradle插件使用新语法,例如model
块周围的android
块。
问题是,当使用这种新语法时,我无法使我的maven工件任务起作用,例如直接从示例中获取的sourcesJar
任务:
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
这不再有效,因为没有阻止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
和model.android.defaultConfig
也不起作用。
我在这里做错了什么?当我无法引用块中定义的变量时,感觉就像我误解了gradle / groovy的工作方式,就像我以前使用稳定的gradle版本一样。我认为android
块只是在model
块内移动了一层间接,所以为什么我不能引用像model.android.defaultConfig.versionName
这样的内容?