本文在简书同步更新:https://www.jianshu.com/p/3b5f2358de1b
发布项目到jcenter可以通过两个插件,一种是gradle-bintray-plugin,另外一种是bintray-release,各有优劣,大家按照个人喜好使用, 本文主要介绍gradle-bintray-plugin。
1、首先登陆https://bintray.com/,请注意,还没有开始,第一个大坑就已经来袭,请不要选择首页的绿色按钮,这是面向企业版,试用30后要收费的,而且也会有一些未知的问题,我们选择红色椭圆圈里面的source account进入。
2、可以使用github google等网站账号授权登录,本文使用的直接注册,注意不要使用国内的一些邮箱(qq,新浪,163等都不好使),以免到时候验证邮箱或者密码比较麻烦。
3、注册登录后的界面如下,点击右上角的Edit Profile进入个人页面。
1、新建一个项目TestPlugin(名字随意),再新建一个module(library),类型选择Android Library
2、将src/main下的目录全部删除,创建一个新的目录groovy,接着根据module的包名创建目录,比如我的module包名是com.plugin.gradle.library,那么就按照这个目录创建。之后在该目录下创建一个以groovy后缀名的文件TestPlugin.groovy,作用是打印出一行字,目的是检验插件是否能运行。大家直接copy就好,因为代码没有自动提示,需要手写,项目结构和代码如下
3、在main目录下创建resources目录,在这个目录下创建META-INF/gradle-plugins, 在目录里面我们再创建名为library.properties的文件,文件名library就是以后给别人引用的插件名。在该文件添加代码:
implementation-class = com.plugin.gradle.library.TestPlugin
1、先配置好主项目的build.gradle,这里需要引入两个依赖
为了让gradle更明显的区分,这里将项目的结构切换成Android的结构,可以在build.gradle后面灰色字体明显看到该项目有三个gradle,分别是Project:TestPlugin、module:app、module:library。我们现在用的是Project级别的gradle,配置好gradle顺便同步一下项目,AS自动帮我们下载依赖。
2、配置module:library里面的gradle,因为我们最终上传的是这个插件,所以重要的信息都包含在里面。
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
version = "0.0.1" //版本
def siteUrl = 'https://github.com/' // 项目主页
def gitUrl = 'https://github.com/' // git
group = "com.plugin.gradle"
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
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
}
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
name 'Android Library'
url siteUrl
//用apache2.0
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
//开发者基本信息
developers {
developer {
id 'pao fan'
name 'pao fan'
email '[email protected]'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
/**
* 用户名和key,这两个信息一般会保存在local.properties里面,只保留在本地,不上传到仓库。
*/
user = properties.getProperty("bintrayUser")
key = properties.getProperty("bintrayApiKey")
println user
println key
configurations = ['archives']
pkg {
repo = "Maven" //跟上面创建的Maven仓库名字保持一致
name = "library" //发布到JCenter上的项目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
用户名和key存放如下,只是示例,大家请使用自己的账号信息 - -,这个文件记得.gitignore忽略不要上传。
我们到底怎么上传这个插件呢,其实有两种方法,但本质上是一样的,可以使用工具,或者使用命令行。
1、使用gradle快捷工具
第一步,在右上角侧边栏找到Gradle,点击打开,在目录中展开library-other,双击install运行
第二步如图展开publishing,双击bintrayUpload运行。
打开Messages,当你看到BUILD SUCCESSFUL,就代表已经上传成功啦。
Information:Gradle tasks [bintrayUpload]
Information:BUILD SUCCESSFUL
Information:Total time: 20.01 secs
Information:0 errors
Information:0 warnings
Information:See complete output in console
2、使用命令行
也可以在AS自带的Terminal使用命令行,先要配置gradle的环境变量才能使用,像JDK一样。
gradew javadocJar
gradew sourcesJar
gradew install
gradew bintrayUpload
1、上传成功后,在个人首页可以看到如下信息,Maven就是已经上传的仓库。
2、点击Maven进入,这里有两个包,library就是刚刚上传的插件。
3、但现在还不能使用,需要点击library进入,选择红框Add to JCenter,等待后台审核便能使用。
简单粗暴,直接send就可以,接下来等待半天或者一天就可以审核通过。
4、使用方式
compile 'com.plugin.gradle:library:0.0.1'
主要的步骤就是:
1.创建账号
2.编写插件(或者随意写一个module)
3.编写module的build.gradle
4.上传,等待审核
总的来说不难,需要大家去实践,那么,本文到此结束。