使用gradle上传项目到jcenter
想不想把自己的库也上传到jcenter,然后只需要一名话
compile com.zzb.library:android-common:0.1.0 //(compile group_id:artifact_id:version)
就可以引用你的库?
按着下面的教程一步一步来就可以了
1.到https://bintray.com/注册一个账号
2.AndroidStudio创建一个项目,然后再在这个项目里创建一个library(File->New->New Module->Android Library)
3.打开项目根目录的gradle.properties文件,复制下面的内容,替换相应字段的值
VERSION_NAME=0.1.0
GROUP=com.zzb.library
POM_NAME=jcenter test
POM_ARTIFACT_ID=common
POM_PACKAGING=aar
#比如我们引用appcompat-v7,那么会这么写 compile 'com.android.support:appcompat-v7:22.2.0'
#实际对应的字段就是 compile 'GROUP:POM_ARTIFACT_ID:VERSION_NAME' POM_DESCRIPTION=项目描述
#项目地址等,我这使用的是github的项目地址
POM_URL=https://github.com/BaronZ/android-common-library
POM_SCM_URL=https://github.com/BaronZ/android-common-library
POM_SCM_CONNECTION=scm:git:git://github.com/BaronZ/android-common-library.git
POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/BaronZ/android-common-library.git #开源协议
POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=repo POM_DEVELOPER_ID=zzb
POM_DEVELOPER_NAME=ZZB POM_DEVELOPER_EMAIL=realbo89@outlook.com
POM_DEVELOPER_URL=http://baronz.github.io GIT_URL=https://github.com/BaronZ/android-common-library.git
ISSUE_URL=https://github.com/BaronZ/android-common-library/issues
4.项目目录下build.gradle,dependencies添加引用
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
}
注,如果不自己写gradle脚本,可跳过步骤5和6
5.项目目录下gradle目录添加文件gradle-jcenter-push.gradle,内容如下
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.bintray' publishing {
publications {
mavenJava(MavenPublication) {
groupId GROUP
version VERSION_NAME
artifactId POM_ARTIFACT_ID
artifact "${project.buildDir}/outputs/aar/${project.name}-release.aar"
artifact androidJavadocsJar
artifact androidSourcesJar pom.withXml {
Node root = asNode()
root.appendNode('name', POM_ARTIFACT_ID)
root.appendNode('description', POM_DESCRIPTION)
root.appendNode('url', POM_URL) def issues = root.appendNode('issueManagement')
issues.appendNode('system', 'github')
issues.appendNode('url', ISSUE_URL) def scm = root.appendNode('scm')
scm.appendNode('url', POM_SCM_URL)
scm.appendNode('connection', POM_SCM_CONNECTION)
scm.appendNode('developerConnection', POM_SCM_DEV_CONNECTION) def license = root.appendNode('licenses').appendNode('license')
license.appendNode('name', POM_LICENCE_NAME)
license.appendNode('url', POM_LICENCE_URL)
license.appendNode('distribution', POM_LICENCE_DIST)
}
}
}
} def getBintrayUserProperty() {
return hasProperty('BINTRAY_USER') ? BINTRAY_USER : ""
} def getBintrayApiKeyProperty() {
return hasProperty('BINTRAY_APIKEY') ? BINTRAY_APIKEY : ""
} // gradle bintrayUpload
bintray {
user = getBintrayUserProperty()
key = getBintrayApiKeyProperty()
publications = ['mavenJava'] dryRun = false
publish = true
pkg {
repo = 'maven'
name = POM_ARTIFACT_ID
desc = POM_NAME
websiteUrl = POM_URL
issueTrackerUrl = ISSUE_URL
vcsUrl = GIT_URL
licenses = ['Apache-2.0']
labels = ['android', 'aar']
publicDownloadNumbers = true version {
name = VERSION_NAME
vcsTag = VERSION_NAME
}
}
}
6.项目目录下gradle目录添加文件android-artifacts.gradle,内容如下
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
} task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
} task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
7.在library目录下的build.gradle底部添加下面两行脚本
如果是执行了5和6,用下面脚本
apply from: rootProject.file('gradle/android-artifacts.gradle')
apply from: rootProject.file('gradle/gradle-jcenter-push.gradle')
如果没有5和6,用下面脚本
apply from: 'https://raw.githubusercontent.com/BaronZ/android-common/master/gradle/android-artifacts.gradle'
apply from: 'https://raw.githubusercontent.com/BaronZ/android-common/master/gradle/gradle-jcenter-push.gradle'
8.登录bintray.com创建maven库
- 点击maven
- 点击Add New Package
- 填入相应的信息,再点Create Package即可
- 回到bintray主页,点击edit
- 点击API Key
- 点击show,记下你的API Key,等下要用
9.找到你home目录下的gradle.properties(windows下目录是C:\Users\你的电脑名称\.gradle),添加下面两行脚本
BINTRAY_USER=你的bintray.com的用户名
BINTRAY_APIKEY=上面一步让你记下的API Key
10.好了,敲下面命令,坐等上传成功,cmd->进入你的项目目录(注,执行下面的命令,请确保设置好环境变量,path里面有gradle/bin,有JAVA_HOME环境变量)
gradle clean build bintrayUpload
如果看到执行结果如下,那么恭喜你,还差一步
如果在生成Javadoc的时候遇到'编码GBK的不 可映射字符'错误,打开gradle/android-artifacts.gradle
添加下面代码到androidJavadocs这个任务里面
allprojects {
tasks.withType(Javadoc) {
options.encoding = "UTF-8"
}
}
即完整脚本如下
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
allprojects {
tasks.withType(Javadoc) {
options.encoding = "UTF-8"
}
}
}
11.还需要点add to jcenter,坐等审核通过
12.几个小时后,当你看到下面的截图,恭喜你,可以引用的你库了
13.下面一句话,引用你的库,大功告成
compile com.zzb.library:android-common:0.1.
14.升级
确保global/gradle.properties里的BINTRAY_USER是正确的
修改library/gradle.properties的VERSION_NAME即可
命令:gradle clean build bintrayUpload
使用gradle上传项目到jcenter的更多相关文章
- Mac使用Gradle上传jar到中央仓库(最完整的采坑记录)
前言 当我们封装完成我们自己做的工具之后,那我们肯定想要发给别人让别人来进行使用,上传到中央仓库是一种引入时最方便的选择. 网上有很多教程,但是大多都是maven和windows的环境. 今天就来记录 ...
- Windows下上传项目到github
首先,一定要有耐心.看到一大堆的命令行(其实并没有一大堆)不要觉得枯燥,最后当你成功把你的项目上传上去之后那种胜利的成果,还是挺有意思的.本人第一次写博客,勿喷. 我写的是主要的流程,详细内容还请移步 ...
- gradle上传jar包到maven公共仓库
首先这里说的中央仓库 是指的 https://issues.sonatype.org/ 而不是maven私服. 其次是使用gradle上传jar包,maven上传,网上有很多教程,这里不做赘述. 首选 ...
- git上传项目代码到github
参考: git学习——上传项目代码到github github上传时出现error: src refspec master does not match any解决办法 git 上传本地文件到gith ...
- GitHub教程--上传项目四步法 GitBash命令行下使用方法
之前就用过GitHub,感觉用GitHub托管自己的代码非常不错.可是之前用的都是窗口化的TortoiseGit,省了很多命令行的操作,但是个人非常喜欢使用命令行,于是,今天就试着用了用GitBash ...
- svn用Cornerstone上传项目丢失静态库.a问题的解决
最近电脑重装系统后,装上Cornerstone上传项目后,发现又有丢失.a文件的问题,这里说一下解决办法,打开Preferences-->Subversion-->General,将Use ...
- 在Eclipse里面使用git上传项目到码云
Eclispe上使用git 1.安装git 按照下图的步骤: 安装过就不用再安装了,没有安装的安装一下! 安装完毕之后:需要做一些初始化的设置: 2.上传项目到码云上 1.首先在码云上建立一个项目 2 ...
- IDEA上传项目至git
今天来分享一下从idea上传项目至coding的过程. 本文基于windows系统. idea提供了很方便的控制git的界面化操作,除了安装git和一些必要的配置之外,用到命令行的地方会非常少. 1: ...
- Android快速实现上传项目到Github
本文为skylinelin原创,转载请注明出处! 一.简介 现在在网上浏览关于Git的文章,基本上都是使用命令行(Git Bash),命令行效率是很高的,但是有一定的复杂性,现在我们看如何用AS来讲项 ...
随机推荐
- python3 pillow使用测试
# -*- encoding=utf-8 -*- ''''' pil处理图片,验证,处理 大小,格式 过滤 压缩,截图,转换 图片库最好用Pillow 还有一个测试图片img.jpg, 一个log图片 ...
- shell按行合并文件
file1abc file2123 如何合并两个文件,得到a 1b 2c 3 awk方式 awk 'NR==FNR{a[NR]=$0}NR>FNR{print a[FNR],$0}' file1 ...
- mysql语句优化技巧
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引 ...
- ecmobile实现支付宝支付和百度云推送遇到的问题及解决方案(android)
1.首先检测支付账户是否开通快捷支付服务,如果开通后,那么公钥是否上传(支付宝问题一定要找支付宝客服解决,找其他人没有用,支付宝客服可以帮你分析底层原因) 2.修改app配置文件:alipay_cal ...
- 【转】kalman滤波
Kalman Filter是一个高效的递归滤波器,它可以实现从一系列的噪声测量中,估 计动态系统的状态.广泛应用于包含Radar.计算机视觉在内的等工程应用领域,在控制理论和控制系统工程中也是一个非常 ...
- 【LeetCode】【找元素】Find First and Last Position of Element in Sorted Array
描述: Given an array of integers nums sorted in ascending order, find the starting and ending position ...
- 【leetcode刷题笔记】Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...
- 大话设计模式--命令模式 Command -- C++实现实例
1. 命令模式: 将请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作. 命令模式有点: a. 较容易的设计一个命令队列 b. 在需要的的情况 ...
- JFreeChart插件
JFreeChart的核心对象. 1. 制图对象 JFreeChart的类是制图对象.常用方法: 方法 说明 Void setAntiAlias(Boolean flag) 设置字体边界模糊 Void ...
- BZOJ 3391 [Usaco2004 Dec]Tree Cutting网络破坏:dfs【无根树 节点分枝子树大小】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3391 题意: 给你一棵无根树,求分支size均不大于一半点数的点. 题解: 假定1为根. ...