Kotlin/Java源码发布到JCenter

一、Bintray 账号

 1. 注册地址 打开注册页面,如下:

 

 
 2. 信息填写完以后点 Create My Account 按钮,然后去验证邮箱,邮箱通过后再打开登录页面登录



 3. 登录后,点击尖头指定按钮,添加maven仓库

 

 
 4. 添加maven,如图
 

 
 5. 申请个apiKey,如图:
 

 
 二、gradle 配置

 1. 将文件bintrayUpload.gradle 和 project.properties 添加到Kotlin工程的库模块目录下面



文件:project.properties 内容如下:

#project  project.name=项目名字 

project.groupId=库包名 

project.artifactId=写包名的最后一个 

project.packaging=包类型(aar) 

project.siteUrl=可以填写github项目地址 

project.gitUrl=填写git下载的地址   

#javadoc  javadoc.name=项目名字就行



文件:bintrayUpload.gradle 内容如下(里面内容无需更改,会读取上面文件的内容):

 
apply plugin: 'com.github.dcendents.android-maven'
 apply plugin: 'com.jfrog.bintray'
 
 // load properties
 Properties properties = new Properties()
 File localPropertiesFile = rootProject.file("local.properties")
 if(localPropertiesFile.exists()){
     properties.load(localPropertiesFile.newDataInputStream())
 }
 File projectPropertiesFile = project.file("project.properties")
 if(projectPropertiesFile.exists()){
     properties.load(projectPropertiesFile.newDataInputStream())
 }
 
 // read properties
 def projectName = properties.getProperty("project.name")
 def projectGroupId = properties.getProperty("project.groupId")
 def projectArtifactId = properties.getProperty("project.artifactId")
 def projectVersionName = android.defaultConfig.versionName
 def projectPackaging = properties.getProperty("project.packaging")
 def projectSiteUrl = properties.getProperty("project.siteUrl")
 def projectGitUrl = properties.getProperty("project.gitUrl")
 
 def developerId = properties.getProperty("developer.id")
 def developerName = properties.getProperty("developer.name")
 def developerEmail = properties.getProperty("developer.email")
  
 def bintrayUser = properties.getProperty("bintray.user")
 def bintrayApikey = properties.getProperty("bintray.apikey")
 
 def javadocName = properties.getProperty("javadoc.name")
 
 group = projectGroupId
 
 // This generates POM.xml with proper parameters
 install {
     repositories.mavenInstaller {
         pom {
             project {
                 name projectName
                 groupId projectGroupId
                 artifactId projectArtifactId
                 version projectVersionName
                 packaging projectPackaging
                 url projectSiteUrl
                 licenses {
                     license {
                         name 'The Apache Software License, Version 2.0'
                         url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                     }
                 }
                 developers {
                     developer {
                         id developerId
                         name developerName
                         email developerEmail
                     }
                 }
                 scm {
                     connection projectGitUrl
                     developerConnection projectGitUrl
                     url projectSiteUrl
                 }
             }
         }
     }
 }
 
 // This generates sources.jar
 task sourcesJar(type: Jar) {
     classifier = 'sources'
     from android.sourceSets.main.java.sourceFiles
 }
 
 task javadoc(type: Javadoc) {
     source = android.sourceSets.main.java.sourceFiles
     classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
 }
 
 // This generates javadoc.jar
 task javadocJar(type: Jar, dependsOn: javadoc) {
     classifier = 'javadoc'
     from javadoc.destinationDir
 }
 
 task classesJar(type: Jar) {
     from "$buildDir/intermediates/classes/release"
 }
 
 artifacts {
     archives classesJar
     archives javadocJar
     archives sourcesJar
 }
 
 // javadoc configuration
 javadoc {
     options{
         encoding "UTF-8"
         charSet 'UTF-8'
         author true
         version projectVersionName
         links "http://docs.oracle.com/javase/7/docs/api"
         title javadocName
     }
 }
 
 // bintray configuration
 bintray {
     user = bintrayUser
     key = bintrayApikey
     configurations = ['archives']
     publish = true
     pkg {
         repo = "maven"
         name = projectName
         desc = 'Kotlin library for Android'
         websiteUrl = projectSiteUrl
         vcsUrl = projectGitUrl
         licenses = ["Apache-2.0"]
         labels = ['kotlin', 'android', 'library']
         publicDownloadNumbers = true
         version {
             name = projectVersionName
             released  = new Date()
         }
     }
 }

 2. 在项目根目录找到文件(若没有创建一个)local.properties,  在该文件中写入如下内容:
#bintray  
bintray.user=jcenter上的用户名  
bintray.apikey=jcenter上申请的apiKey    

#developer  
developer.id=随便填  
developer.name=随便填  
developer.email=register email


 3. 主要就是这几个配置文件,接下来在项目库模块的build.gradle 文件里加入这句话  

apply from : "bintrayUpload.gradle"

 

4. 在项目根目录的build.gradle文件中加入依赖,如下:

//1.自动化maven打包插件   

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'  

//2.自动上传至Bintray平台插件  

classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3"

 5. gradle配置完成后,在android studio上执行sync同步一下。 



三、命令上传 


1. 上传之前要记得更新versionName,以后升级版本,就改下版本好就行了。 


2. 执行命令:  

 ./gradlew bintrayUpload
 3. 上传过程中,如图:  
   4. 上传成功后,看下Bintray账号里的maven库,如图:  
   5. 上传的版本,需要最后linked to 到 jcenter上 ,这个过程需要等待审批,一般是一俩小时吧。  
 等上图中显示出jcenter茶杯的时候就证明ok了。如果库没有增加到jcenter也,本地项目也可以用,不过要在项目根目录下的build.gradle文件中增加maven配置,代码如下: 
maven{url 'https://dl.bintray.com/这里是你的用户名/maven/'}

 6. 项目中引用方法如下:
compile 'one.android.app:adsdk:1.0.2@aar'



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值