Gradle发布项目到 maven 之gradle-bintray-plugin(2)
上传的方式有两种,第一种是通过 bintray 官方出的插件
第二种是一个国外组织开源的插件
这里讲bintray/gradle-bintray-plugin
1.在项目根目录下的 build.gradle 添加插件依赖

dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
}
在项目根目录下的 gradle.properties 中配置我们的开源库信息
PROJ_NAME=test-lib
PROJ_GROUP=com.test.lib
PROJ_ARTIFACTID=test-lib
PROJ_VERSION=0.1.1
PROJ_WEBSITEURL=https://github.com/youproject_url
PROJ_ISSUETRACKERURL=https://github.com/youproject_url/issues
PROJ_VCSURL=https://github.com/youproject_url/xxxx.git
PROJ_DESCRIPTION=project description DEVELOPER_ID=xxx_id
DEVELOPER_NAME=you accout name
DEVELOPER_EMAIL=you email@gmail.com
BINTRAY_USER=werbhelius
BINTRAY_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3.在我们开源库的目录下,新建一个 bintray.gradle 文件,用于上传开源库以及配置发布的文件内容包括源码,文档以及 AAR。
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven' group = PROJ_GROUP
version = PROJ_VERSION
project.archivesBaseName = PROJ_ARTIFACTID task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
} task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += configurations.compile
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
} task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
} javadoc {
options{
encoding "UTF-8"
charSet 'UTF-8'
author true
version true
links "https://androiddoc.qiniudn.com/reference/"
title "$PROJ_NAME $PROJ_VERSION"
}
} artifacts {
archives sourcesJar
archives javadocJar
} install {
repositories.mavenInstaller {
pom.project {
name PROJ_NAME
description PROJ_DESCRIPTION //project description
url PROJ_WEBSITEURL //project weiste url packaging 'aar'
groupId PROJ_GROUP //group
artifactId PROJ_ARTIFACTID //artifactId
version PROJ_VERSION //version licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
scm {
connection PROJ_VCSURL
url PROJ_WEBSITEURL }
developers {
developer {
id DEVELOPER_ID
name DEVELOPER_NAME
email DEVELOPER_EMAIL
}
}
}
}
} bintray { Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
user = properties.getProperty('BINTRAY_USER')
key = properties.getProperty('BINTRAY_KEY')
configurations = ['archives'] dryRun = false
publish = true pkg {
repo = 'maven'
name = PROJ_NAME
licenses = ['Apache-2.0']
vcsUrl = PROJ_VCSURL
websiteUrl = PROJ_WEBSITEURL
issueTrackerUrl = PROJ_ISSUETRACKERURL
publicDownloadNumbers = true
version {
name = PROJ_VERSION
desc = PROJ_DESCRIPTION
vcsTag = PROJ_VERSION gpg {
sign = true
}
}
}
}
4.在我们开源库中的 build.gradle 文件中引入 bintary.gradle ,注意引入的命令需要写在最后一行,不然会报错。
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
}
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'
}
apply from: './bintray.gradle'
5.当上述的配置全部完成之后,我们可以上传我们的开源库了,打开 Terminal,执行 ./gradlew install,执行完成后,打开 build 目录你会发现生成了 aar 包、javadoc 文档、sources 源码以及上传 maven 需要的 pom 配置文件。
生成上述文件后,继续在 Terminal 中执行 ./gradlew bintrayUpload 提示成功之后,我们的开源库就发布成功啦。
也可以直接通过

点击之后显示成功

发布成功之后,打开之前 bintray 网页,你会发现在之前我们创建的 maven 仓库中,已经有我们刚刚发布的库了

Gradle发布项目到 maven 之gradle-bintray-plugin(2)的更多相关文章
- Gradle发布项目到 maven 之novoda/bintray-release(3)
novoda/bintray-release 使用这个插件上传比较简单,只需要两步就可以 1.在项目根目录下的 build.gradle 添加插件依赖 // Top-level build file ...
- Gradle发布项目到 maven(1)
常见的 Maven 仓库 JCenter.MavenCenter.JitPack epositories { google() // google 仓库 jcenter() // JCenter 仓库 ...
- 如何在Android Studio中使用Gradle发布项目至Jcenter仓库
简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...
- 使用Gradle发布项目到JCenter仓库 (转载)
原文:使用Gradle发布项目到JCenter仓库 这篇文章介绍通过Gradle把开源项目发布到公共仓库JCenter中,方便你我他的事情,我们都是很懒的嘛.JCenter现在是Android Stu ...
- Gradle快速上手——从Maven到Gradle
[本文写作于2018年7月5日] 本文适合于有一定Maven应用基础,想快速上手Gradle的读者. 背景 Maven.Gradle都是著名的依赖管理及自动构建工具.提到依赖管理与自动构建,其重要性在 ...
- 发布项目到maven中央仓库
https://www.xiaominfo.com/2017/04/25/swagger-bootstrap-ui-issue-maven-central/?tdsourcetag=s_pcqq_ai ...
- Android拓展系列(12)--使用Gradle发布aar项目到JCenter仓库
目的 发布自己的android library(也就是aar)到公共的jcenter仓库,所有的人都能用gradle最简单的方式引用. 为什么选择jcenter,它兼容maven,而且支持更多形式仓库 ...
- 把自己的项目发布到maven仓库并在maven和gradle中开始使用
把自己的项目发布到maven仓库并在maven和gradle中开始使用 上一条博客中提到的日志打印项目总算是维护的差不多了, 不过现在使用它还是打成jar包放到其他项目内, 所以决定把项目传到mave ...
- Android studio 使用Gradle发布Android开源项目到JCenter 总结
1.注册账号 先到https://bintray.com注册一个账号. 这个网站支持 github 账户直接登录的 2.获取 bintray.user 和 bintray.apikey ...
随机推荐
- easyUI form sumit 中文乱码
jsp 编码方式: pageEncoding="UTF-8" tomcat 编码方式: <Connector connectionTimeout="20000&qu ...
- linux系统下ipmitool添加BMC帐号密码
需求:已知BMC帐号id2为root管理员帐号,添加id5bmc帐号 工具:ipmitool version 1.8.14 系统:CentOS release 6.6 (Final) 1,通过yum安 ...
- Vue 兄弟组件通过事件广播传递数据
非父子组件传值 通过事件广播实现非父子组件传值1.新建js,引入并实例化Vue import Vue from 'vue' var VueEvent = new Vue(); export defau ...
- Object C语法学习笔记(二)
1.@property与@synthesize配对使用. @property预编译指令的作用是自动声明属性的setter和getter方法. @synthesize 创建了该属性的访问代码 功能:让编 ...
- k8s(未完待续)
K8s简介Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展. 使用Kubernetes可以 自动化容器的部署和复制 随时扩展或收缩容器规模 将容器 ...
- soapui
webservice 的请求可使用工具:soapui 天气预报的接口地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsd ...
- 【ARC075F】Mirrored 搜索/数位dp
Description 给定正整数DD,求有多少个正整数NN,满足rev(N)=N+Drev(N)=N+D,其中rev(N)rev(N)表示将NN的十进制表示翻转来读得到的数 Input 一个 ...
- luoguP3415 祭坛
https://www.luogu.org/problemnew/show/P3415 考虑二分结界层数,将 n 个点按 x 大小依次加入答案,一行一行的做,用树状数组维护当前这一行中[0, x - ...
- uoj#344. 【清华集训2017】我的生命已如风中残烛(计算几何)
题面 传送门 题解 orzxyx 首先我们发现,一个点如果被到达大于一次,那么这个点肯定在一个环上.所以在不考虑环的情况下每个点只会被到达一次,那么我们就可以直接暴力了 简单来说,我们对每个点\(i\ ...
- 【AOP】基于@Aspect的AOP配置
基于spring cloud的aop配置 1,启动类MemberAppliaction增加注解 @Import({SwaggerConfiguraion.class, WebMvcAutoConfig ...