昨天把 gradle 升级到 6.0 以后,发现这傻逼的 google 又直接干 API,以前上报的全部脚本都没法用了。我们原先上报一个 aar,是直接引入。
对本文有任何问题,可加我的个人微信询问:kymjs666昨天把 gradle 升级到 6.0 以后,发现这傻逼的 google 又直接干 API,以前上报的全部脚本都没法用了。我们原先上报一个 aar,是直接引入
apply plugin: 'maven'
结果新版本直接这个插件都被干掉了,看了官网文档以后才知道,换成了
apply plugin: 'maven-publish'
然后里面的API也全换掉了。
解决 sourcesJar Task 过时
然后 sourcesJar
的 task
也报了个警告,说classifier
已经过时了,以前代码是这样写的:
task sourcesJar(type: Jar) {
classifier = 'sources'
}
这个好解决,看一眼源码,要用 archiveClassifier
去替代:
/**
* Sets the classifier.
*
* @deprecated Use {@link #getArchiveClassifier()}
*/
@Deprecated
public void setClassifier(@Nullable String classifier) {
// This is used by the Kotlin plugin, we should upstream a fix to avoid this API first.
// DeprecationLogger.deprecateProperty(AbstractArchiveTask.class, "classifier").replaceWith("archiveClassifier").withDslReference().nagUser();
archiveClassifier.convention(classifier);
archiveClassifier.set(classifier);
}
内部就是做了个代理,改成了新API,就解决了。
task sourcesJar(type: Jar) {
archiveClassifier.convention('sources')
archiveClassifier.set('sources')
}
本文为付费文章,订阅用户请访问小专栏查阅 https://xiaozhuanlan.com/topic/1892435067
了解更多有深度技术的文章,与移动端、大前端未来方向的认知,前往订阅 开源实验室小专栏。