使用Gradle发布项目到JCenter仓库

JCenter现在是Android Studio中repositories的默认节点了,之前是Maven的,不过JCenter是兼容Maven的,所以放心使用。

  1. 申请Bintray账号
  • https://bintray.com/
  1. 生成jar/aar包
  • 这一步需要android-maven-plugin插件,所以我们需要在项目的build.gradle(、项目最外层的build.gradle文件)中添加这个构建依赖,如下:
buildscript {
   repositories {
       jcenter()
   }
   dependencies {
       classpath 'com.android.tools.build:gradle:2.0.0'
       //自动化maven打包插件
       classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
   }
}

allprojects {
   repositories {
       jcenter()
   }
}

注意自动化maven打包插件的版本,网速查到的资料写的都是1.0或1.1;gradle升级后已经不能再用旧版本了

  • 然后在你需要发布的那个module(我这里的即是library)的build.gradle里配置如下内容:
 apply plugin: 'com.android.library'
 apply plugin: 'com.github.dcendents.android-maven'
 apply plugin: 'com.jfrog.bintray'

 version = "1.6.4"

 android {
     compileSdkVersion 23
     buildToolsVersion "23.0.3"
     resourcePrefix "numchoose_"

     defaultConfig {
         minSdkVersion 14
         targetSdkVersion 23
         versionCode 31
         versionName version
     }
     buildTypes {
         release {
             minifyEnabled false
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }
     }
 }

 def siteUrl = 'https://github.com/nesror/NumChooseView' // 项目的主页
 def gitUrl = 'https://github.com/nesror/NumChooseView.git' // Git仓库的url
 group = "cn.yzapp.numchooseview" // 一般填你唯一的包名
 install {
     repositories.mavenInstaller {
         pom {
             project {
                 packaging 'aar'
                 //项目描述
                 name 'Android number choose view'
                 url siteUrl
                 // 开源协议
                 licenses {
                     license {
                         name 'The Apache Software License, Version 2.0'
                         url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                     }
                 }
                 developers {
                    //填写的基本信息
                     developer {
                         id 'nestor'
                         name 'nestor'
                         email '[email protected]'
                     }
                 }
                 scm {
                     connection gitUrl
                     developerConnection gitUrl
                     url siteUrl
                 }
             }
         }
     }
 }

 // 注释掉不上传源码
 task sourcesJar(type: Jar) {
     from android.sourceSets.main.java.srcDirs
     classifier = 'sources'
 }
 task javadoc(type: Javadoc) {
     options.encoding = "utf-8"
     source = android.sourceSets.main.java.srcDirs
     classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
 }
 task javadocJar(type: Jar, dependsOn: javadoc) {
     classifier = 'javadoc'
     from javadoc.destinationDir
 }
 artifacts {
     archives javadocJar
     archives sourcesJar
 }
 Properties properties = new Properties()
 properties.load(project.rootProject.file('local.properties').newDataInputStream())
 bintray {
     user = properties.getProperty("bintray.user")
     key = properties.getProperty("bintray.apikey")
     configurations = ['archives']
     pkg {
         repo = "maven"
         name = "NumChooseView"    //发布到JCenter上的项目名字
         websiteUrl = siteUrl
         vcsUrl = gitUrl
         licenses = ["Apache-2.0"]
         publish = true
     }
 }
  • 配置好上述后需要在你的项目的根目录上的local.properties文件里(一般这文件需gitignore,防止泄露账户信息)配置你的bintray账号信息。
bintray.user=your_user_name
bintray.apikey=your_apikey
  1. 这一步为止,就可以把你项目生成到本地的仓库中了,Android Studio中默认即在Android\sdk\extras\android\m2repository这里,所以我们可以通过如下命令执行生成:
  • gradlew install
  1. 上传到Bintray
  • 上传到Bintray需要gradle-bintray-plugin的支持,所以在最外层的build.gradle里添加构建依赖:
   dependencies {
       classpath 'com.android.tools.build:gradle:2.0.0'
       //自动化maven打包插件
       classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
       //自动上传至Bintray平台插件
       classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4"
   }
  • 然后执行如下命令完成上传:
  • gradlew bintrayUpload
  1. 申请你的Repo添加到JCenter
  • https://bintray.com/bintray/jcenter ,输入你的项目名字点击匹配到的项目,然后写一写Comments再send即可,工作时间内1消失内就会批准
  • 可能会检查 “def siteUrl = 'https://github.com/nesror/NumChooseView' // 项目的主页 ”里的项目来确认
  1. 使用
  • compile 'cn.yzapp.numchooseview:numchooseviewlib:1.6.4@aar'
  1. 可能会遇到的问题
  • 生成javaDoc报错:
  • javaDoc注释中有中文:
  • 注释中非javadoc中规定的注解:
    如(以下只有@author是可以用的):
    /**
    * @author: xxx
    * @time: 4/9 009-11:56.
    * @email: [email protected]
    * @desc:
    */
    
  • 还有其他很多,已经忘记了

你可能感兴趣的:(使用Gradle发布项目到JCenter仓库)