将 android 库发布为 Maven jar

JHH*_*JHH 5 android jar publishing gradle maven

Gradle/maven 新手在这里。我创建了一个库,目前作为 AAR 发布到 bintray/jcenter,以便在 Android Studio 项目中与 gradle 一起使用。然而,由于我的库实际上没有任何硬性 Android 依赖项,并且可以在任何 Java SE 环境中使用,因此我也想将其作为普通 jar 发布。由于我对非 android java 开发社区不太熟悉,我不确定这是否意味着我应该将其发布到 Maven 中心,或者开发人员通常可以从 bintray 获取我的库,因为该库实际上托管在bintray 上的 Maven 存储库?我应该简单地扩展我的工件以包含该 jar(以及 aar、javadoc 和源 jar),还是通常应该单独发布该 jar,例如发布到 Maven 中心?

让 bintray/jcenter 的东西启动并运行并不容易,我找到了一些关于如何做到这一点的指南,但没有一个是真正完整的,但最终我让它工作了。然而,我很难找到类似的 Maven 发布简单指南。

我的 gradle 文件如下所示:

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 1
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
    }
}

group = <my library name>
version = <my version>

dependencies {
}

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    options.overview = 'src/main/overview.html'
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

bintray {
    user = properties.getProperty("bintray.user")
    key = properties.getProperty("bintray.apikey")

    configurations = ['archives']
    pkg {
        repo = "maven"
        name = <my library name>
        websiteUrl = <my site url>
        vcsUrl = <my git url>
        licenses = ["Apache-2.0"]
        publish = true
    }
}
Run Code Online (Sandbox Code Playgroud)

com.github.dcendents.android-maven插件提供了install生成 AAR、Source Jar 和 Javadoc Jar 的任务。我定义了自己的 bintray 任务,将库发布到 bintray。创建一个将我的库也作为标准 jar 发布到 Maven 的任务的最简单方法是什么?我也可以用com.github.dcendents.android-maven这个吗,还是需要一个单独的插件?