Java/Android发布library上传artifacts

2020-03-03  本文已影响0人  CrazyOrr

必需artifacts

在发布library到Maven repository时,通常情况下我们上传的artifacts包含:

示例如下:

perfmonitor-0.1.1-20200114.075334-4.aar           14-Jan-2020 15:53  48.27 KB
perfmonitor-0.1.1-20200114.075334-4.pom           14-Jan-2020 15:53  463 bytes

有了这两者,其他人就可以通过GAV(Group, Artifact, Version)来定位并下载到我们的artifacts。

可选artifacts

除了上述的必需artifacts,我们还可以上传两个可选的artifacts:

示例如下:

perfmonitor-0.1.1-20200114.075334-4-javadoc.jar   14-Jan-2020 15:53  94.29 KB
perfmonitor-0.1.1-20200114.075334-4-sources.jar   14-Jan-2020 15:53  23.93 KB

另外,如果你的library要发布到Maven Central,那么这两个artifacts就是必需的。

如何配置生成这两个artifacts

Android Gradle pluginJava plugin有不同,使用了Kotlin后也会不同,这里只列出不使用Kotlin的Android的核心配置方法。

创建tasks

// sources
tasks.register('sourcesJar', Jar) {
    archiveClassifier.set('sources')
    from android.sourceSets.main.java.sourceFiles
}
    
// javadoc
tasks.register('androidJavadoc', Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
tasks.register('javadocJar', Jar) {
    dependsOn androidJavadoc
    archiveClassifier.set('javadoc')
    from androidJavadoc.destinationDir
}

在需要发布的artifacts中添加之前创建的tasks

publishing {
    publications {
        releaseAar(MavenPublication) {
            // ... 原有artifact
            artifact sourcesJar
            artifact javadocJar
        }
    }
}

兼容Java/Android各种情况的配置请移步这里

上一篇下一篇

猜你喜欢

热点阅读