一、Bintray 账号
1. 注册地址 打开注册页面,如下:
2. 信息填写完以后点 Create My Account 按钮,然后去验证邮箱,邮箱通过后再打开登录页面登录
3. 登录后,点击尖头指定按钮,添加maven仓库
4. 添加maven,如图
5. 申请个apiKey,如图:
二、gradle 配置
1. 将文件bintrayUpload.gradle 和 project.properties 添加到Kotlin工程的库模块目录下面
2. 在项目根目录找到文件(若没有创建一个)local.properties, 在该文件中写入如下内容:
4. 上传成功后,看下Bintray账号里的maven库,如图:
5. 上传的版本,需要最后linked to 到 jcenter上 ,这个过程需要等待审批,一般是一俩小时吧。
等上图中显示出jcenter茶杯的时候就证明ok了。如果库没有增加到jcenter也,本地项目也可以用,不过要在项目根目录下的build.gradle文件中增加maven配置,代码如下:
1. 注册地址 打开注册页面,如下:
![](https://i-blog.csdnimg.cn/blog_migrate/824dec55bf5b16fc3c5766c70601e67d.png)
2. 信息填写完以后点 Create My Account 按钮,然后去验证邮箱,邮箱通过后再打开登录页面登录
3. 登录后,点击尖头指定按钮,添加maven仓库
![](https://i-blog.csdnimg.cn/blog_migrate/522c06e9317a222292ddd63e3155968d.png)
4. 添加maven,如图
![](https://i-blog.csdnimg.cn/blog_migrate/c198964d7b141ae00437aeab291b04f4.png)
5. 申请个apiKey,如图:
![](https://i-blog.csdnimg.cn/blog_migrate/a6b8f9e88b08e1316d9b17f59423e30d.png)
二、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. 上传过程中,如图:
![](https://i-blog.csdnimg.cn/blog_migrate/09d70735d90d029f0cfde455b376afbc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b803f80715fa4eb13090953947c923f7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/837e5609d5321cd377e48f264faac346.png)
maven{url 'https://dl.bintray.com/这里是你的用户名/maven/'}
6. 项目中引用方法如下:
compile 'one.android.app:adsdk:1.0.2@aar'