发布项目到Jcenter

JCenter是什么?

  • 它是由 JFrog 公司提供的 Bintray 中的 Java 仓库
  • 与 Maven Central 相比,JCenter 的速度更快,包含的库更多,UI界面更友好,更容易使用
  • Bintray 还支持将 JCenter 上传到 Maven Central 的功能
  • JCenter 是 Android Studio 默认使用的服务器仓库

如何上传到Jcenter?

使用bintray-release插件上传(这种方式比较便捷)

1.1 注册bintray.com账号

1.2 项目的build.gralde

buildscript {
    ext.deps = [
            'support'       : [
                    'compat'     : "com.android.support:support-compat:${versions.supportLibrary}",
                    'annotations': "com.android.support:support-annotations:${versions.supportLibrary}",
                    'test'       : [
                            'runner': 'com.android.support.test:runner:1.0.1',
                    ],
            ],
            javapoet        : 'com.squareup:javapoet:1.10.0',
            'auto'          : [
                    'service': 'com.google.auto.service:auto-service:1.0-rc4',
                    'common' : 'com.google.auto:auto-common:0.10',
            ],
            'userOrg'       : 'woshifantuo3',   //bintray注册的用户名
            'groupId'       : 'com.zero',   //compile引用时的第1部分groupId
            'publishVersion': '1.0.3',   //compile引用时的第3部分版本号
            'desc'         : 'This is a apt tool for validate input',
            'website'       : 'https://github.com/cl9/InputValidator',
    ]
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.novoda:bintray-release:0.8.1'
    }
}

1.3 待上传moudle的build.gralde

apply plugin: 'com.novoda.bintray-release'

android {
  //保持不变
}

dependencies {
    //保持不变
}

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

String localBintrayUser = properties.getProperty("bintray.user")
String localBintrayApikey = properties.getProperty("bintray.apikey")

publish {
    bintrayUser = localBintrayUser   //bintray.com用户名
    bintrayKey = localBintrayApikey  //bintray.com apikey
    dryRun = false
    userOrg = deps.userOrg
    groupId = deps.groupId
    artifactId = 'inputvalidator-processor'   //compile引用时的第2部分项目名
    publishVersion = deps.publishVersion
    desc = deps.desc
    website = deps.website
}

1.4 修改local.properties

bintray.apikey=BINTRAY_KEY
bintray.user=BINTRAY_USERNAME

1.5 上传

在studio的命令行执行以下命令即可

gradlew clean build bintrayUpload 

这样上传成功后就可以使用了,例如:

buildscript {
    repositories {
        // 必须指定maven仓库的地址,因为此时还没上传到jcenter
        maven { url "https://dl.bintray.com/woshifantuo3/maven" }  
    }
    dependencies {
        classpath 'com.zero:AspectPlugin:1.0.0'
    }
}
apply plugin: 'aspectj.plugin'

1.6 上传到jcenter

上传到jcenter之后就可以不用指定maven仓库地址,直接就能使用:

buildscript {
    dependencies {
        classpath 'com.zero:AspectPlugin:1.0.0'
    }
}
apply plugin: 'aspectj.plugin'

使用gradle-bintray-plugin插件上传

可以参考 如何利用gradle-bintray-plugin上传开源项目到jcenter

注意事项

  • local.properties文件千万不要上传到版本仓库中
  • Bintray如何删除版本库某一版本
  • Bintray注册一定要走个人注册地址https://bintray.com/signup/oss

参考

  • 多个语言项目发布JCenter仓库的小结
  • 新版Bintray网站发布Library到JCenter
  • 如何利用bintray-release上传开源项目到jcenter
  • 如何利用gradle-bintray-plugin上传开源项目到jcenter

你可能感兴趣的:(发布项目到Jcenter)