Gradle 6.X 上传 aar 到 Nexus 私服



对本文有任何问题,可加我的个人微信询问:kymjs666

昨天把 gradle 升级到 6.0 以后,发现这傻逼的 google 又直接干 API,以前上报的全部脚本都没法用了。我们原先上报一个 aar,是直接引入

apply plugin: 'maven'

结果新版本直接这个插件都被干掉了,看了官网文档以后才知道,换成了

apply plugin: 'maven-publish'

然后里面的API也全换掉了。

解决 sourcesJar Task 过时

然后 sourcesJartask 也报了个警告,说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