Bintray网页操作
注册
(注册都是个坑)
- 一定要在下面这个网址注册(个人账户)
https://bintray.com/signup/oss - 不要在这里注册 https://bintray.com(这是公司组织注册的账户)
- 用github或者谷歌邮箱注册,不能使用国内邮箱
创建一个组织
在该组织下创建仓库
至此,组织–>仓库 创建好了
获取key和user
拿到这些信息,gradle配置会用到
代码gradle配置
简介
需要配置三个文件
- 项目根gradle
- 你所要提交的Module的gradle
- local.properties
注意:不需要添主项目的gradle(app的gradle)
1. 项目根gradle
这个很简单
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
2.Module的gradle配置
这个比较复杂了
- 直接复制即可(只是复制↓↓↓↓↓↓↓↓↓和↑↑↑↑↑↑↑↑之间包含的部分,一共两个部分)
- 记得替换含注释的代码
- 其他的不要动
apply plugin: 'com.android.library'
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓Jcenter第一部分,复制就可以,有注释的地方替换为你的内容↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'
def siteUrl = 'https://github.com/AndroidStudy2015/JcenterDemo' // 项目的主页
def gitUrl = 'https://github.com/AndroidStudy2015/JcenterDemo.git' // Git仓库的url
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
version = "1.0.0" //发布版本号
group = "com.piano" //最终引用形式,如compile 'com.piano.demolib:1.0.0',其中demolib在后面配置
//↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 14
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
//↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓Jcenter第二部分,复制就可以,有注释的地方替换为你的内容↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
pkg {
repo = 'PianoMusic'//自己创建的仓库名字
name = 'demolib'//上传到JCenter的名字,最终引用的名字 compile 'com.piano.demolib:1.0.0'
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ['MIT']//不能随便写,只能是仓库创建时选择的license type
userOrg = 'fantasiticid' //自己创建的organization名称,一定要全是小写字母,即使当时创建的名称含有大写,这里全部转换为小写,否则404
publish = true // 是否是公开项目,公开别人可以引用
version {
name = '1.0.0'
desc = '一个小小的demo'//描述,自己定义
released = new Date()
vcsTag = 'v1.0.0'
attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin']
}
}
configurations = ['archives']
}
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
name 'demolib'
description '小小的demo'
url siteUrl
// Set your license
licenses {
license {
name 'MIT' //和之前自己定义的协议一致
url 'https://raw.githubusercontent.com/minggo620/Pluto-Android/master/LICENSE'
}
}
developers {
developer {
id 'cjx2080' //填写bintray或者github的用户名
name 'cjx' //姓名
email 'cjx2080@gmail.com'//邮箱
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
failOnError false //必须添加以免出错
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
}
javadoc {
options{
//如果你的项目里面有中文注释的话,必须将格式设置为UTF-8,不然会出现乱码
encoding "UTF-8"
charSet 'UTF-8'
author true
version true
links "http://docs.oracle.com/javase/7/docs/api"
}
}
//↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
3.local.properties
配置用户名和apikey
bintray.user=xxxx
bintray.apikey=xxxxxxxxxxxx
如果没成功,仔细检查上面最复杂的那个gradle配置文件,
- 是不是原文复制了
- 是不是替换了所有含有注释的代码为你的对应内容
- 仓库名称、组织名称、用户名、apikey 是不是都正确
AndroidStudio打开终端执行两个任务
./gradlew install
./gradlew bintrayUpload
./gradlew命令不可用,可能是环境变量没配置
- Mac参见:mac下的 bash gradle command not found
- Windows:应该很简单
成功了
点击立方体图标打开下面的网页
点击Add to Jcenter
在其他项目引用你的依赖
在其他项目的根gradle里
在module的gradle里
使用你的依赖库
审核成功了
审核成功后,点击小信封
审核用了8个多小时
现在就可以直接使用了,可以删除上文中私有仓库的引用(Maven{url “xxxxxx”}可以删除)
如何升级版本
只要在module所在的gradle文件里修改即可,其余gradle文件不变
升级成功了
参考
新版Bintray-极简上传Library到JCenter,可上传自定义maven仓库