Android Studio公布到Jcenter
1.前言
拥抱开源。热爱开源,将我们觉得不错的代码开源到gihtub。将我们的库公布到jcenter\mevan等。
2.准备工作
2.1 准备
- 申请仓库账号
- 注意model为android library项目
2.2 插件引入
在根文件夹的gradle文件下增加
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-plugin:1.2'
个人觉得这1个最好保持一直。
最后我们根文件夹下的gradle文件变成这个样子
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-plugin:1.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2.3 在根文件夹下创建一个bintray.gradle文件(必须这名字)
group = PROJ_GROUP
version = PROJ_VERSION
project.archivesBaseName = PROJ_ARTIFACTID
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'
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 "http://docs.oracle.com/javase/7/docs/api"
title PROJ_ARTIFACTID
}
}
artifacts {
archives javadocJar
archives sourcesJar
}
def pomConfig = {
licenses {
license {
name "The Apache Software License, Version 2.0"
url "http://www.apache.org/licenses/LICENSE-2.0.txt"
distribution "repo"
}
}
developers {
developer {
id DEVELOPER_ID
name DEVELOPER_NAME
email DEVELOPER_EMAIL
}
}
//这里有引號,而且有个空格,否则生成不了依赖。主要是这里的dependencies并非build.gradle里的dependencies,而gradle会把他当成自身的dependencies处理
"dependencies " {
// dependency{
// groupId "com.alibaba"
// artifactId "fastjson"
// "version " "1.2.6"
// //同dependencies
// }
}
}
publishing {
publications {
mavenJava(MavenPublication) {
artifactId PROJ_ARTIFACTID
pom{
packaging 'aar'
}
pom.withXml {
def root = asNode()
root.appendNode('description', PROJ_DESCRIPTION)
root.children().last() + pomConfig
}
}
}
}
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']
publications = ['mavenJava']
publish = true
pkg {
repo = 'maven'
name = PROJ_NAME
desc = PROJ_DESCRIPTION
websiteUrl = PROJ_WEBSITEURL
issueTrackerUrl = PROJ_ISSUETRACKERURL
vcsUrl = PROJ_VCSURL
licenses = ['Apache-2.0']
publicDownloadNumbers = true
}
}
上述文件差点儿不用改动,假如你将要上传的包 包括其它的三方库。
在以下块中进行申明
"dependencies " {
// dependency{
// groupId "com.alibaba"
// artifactId "fastjson"
// "version " "1.2.6"
// //同dependencies
// }
}
通俗易懂,一目了然,就不多做解释了,而且在根文件夹下的gradle.properties文件里增加
PROJ_GROUP=这里改成groupId,比方com.android.support
PROJ_VERSION=这里改成库版本号。比方22.2.0
PROJ_NAME=这里改成库名字,比方appcompat
PROJ_WEBSITEURL=这里改成github地址。比方https://github.com/android/appcompat
PROJ_ISSUETRACKERURL=这里改成issue地址,比方https://github.com/android/appcompat/issues
PROJ_VCSURL=这里改成版本号控制地主,比方https://github.com/android/appcompat.git
PROJ_DESCRIPTION=这里改成库的描写叙述信息
PROJ_ARTIFACTID=这里改成库的标示。比方appcompat-v7
DEVELOPER_ID=这里改成开发人员id。比方
DEVELOPER_NAME=这里改成开发人员名字。比方android
DEVELOPER_EMAIL=这里改成开发人员邮箱,比方someone@android.com
2.4 剩余配置
- 在Model相应的gralde文件里配置签名\引入bintray.gradle,终于代码例如以下。如看不懂配置相关,阅读这篇 或者自行阅读gradle for android
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//compile 'com.android.support:appcompat-v7:23.1.1'
}
apply from:'../bintray.gradle'
注意bintray.gradle 一定要放在文件最以下。
- 配置BINTRAY_KEY 和BINTRAY_USER 也就是一開始注冊的那个
guolei1130 为我的username,查看key 点击edit,
点api key ,show 就可以看到。
在根文件夹下的local.properties 配置。
BINTRAY_KEY=e21c3f96df17xxxxxxxx
BINTRAY_USER=guolei1130
这里相应的是bintray.gradle中的这一段代码。当然,你能够改动这段代码,将这2个属性写在任何位置
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
user = properties.getProperty('BINTRAY_USER');
key = properties.getProperty('BINTRAY_KEY');
最后。sync now。
3.上传前准备
3.1 生成aar 包(上传)
build,生成相应的aar包。
3.2 生成jardocjar sourcesjar
在model 相应的other task中。找到上面2个。点击生成 一般不慧出错
3.3 在publish中点击task生成pom文件
点击第二个就可以
3.4 上传
点击上图中的第一个task,假设出错,依据错误排查就可以,一般就是身份验证的相关问题。
4. 导入的jcenter(需经过审核)
这个mevan仓库就是我刚才上传的,可是我们须要将他导入到jcenter 中。点击jcenter.点击有側导入。筛选将要导入的库。等待管理员审核就可以。
5. 最后来看下我的库
github地址,求个star
最后来张图证明我是刚刚上传的。
没错,就是这么so easy.
Android Studio公布到Jcenter的更多相关文章
- 建立企业内部mavenserver并使用Android Studio公布公共项目
由于Android Studio使用了Gradle构建工具,在library依赖的处理上是将被依赖的library作为一个module引入(拥有一份完整的library拷贝),而Eclipse的ADT ...
- Android Studio 经常使用功能介绍
为了简化 Android 的开发力度,Google 决定将重点建设 Android Studio 工具.Google 会在今年年底停止支持其它集成开发环境.比方 Eclipse. Android St ...
- Android Studio新手全然指引
Android Studio新手全然指引 @author ASCE1885的 Github 简书 微博 CSDN Android Studio的下载及安装 假设你的电脑能够FQ,那么请直接到Andro ...
- 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建
使用.创造和分享 笔者曾经不思量力的思考过『是什么推动了互联网技术的快速发展?』这种伟大的命题.结论是,除了摩尔定律之外,技术经验的快速积累和广泛分享,也是重要的原因. 有人戏称,『写 Java,首先 ...
- Android开发:怎样把Android studio中的Library公布到Jcenter
本人之前写了个简单的库,想放到Jcenter上.查过各种资料.踩过各种坑,久经折腾.最终发现了一个很easy而且高效的方法.现分享出来,该方法本人亲測可用,实现起来大概仅仅须要半个小时.这种方法是国外 ...
- Android studio 使用Gradle发布Android开源项目到JCenter 总结
1.注册账号 先到https://bintray.com注册一个账号. 这个网站支持 github 账户直接登录的 2.获取 bintray.user 和 bintray.apikey ...
- 【转】如何使用Android Studio把自己的Android library分发到jCenter和Maven Central
转自:http://www.devtf.cn/?p=760&utm_source=tuicool 如何使用Android Studio把自己的Android library分发到jCenter ...
- 如何通过Android Studio发布library到jCenter和Maven Central
http://www.jianshu.com/p/3c63ae866e52# 在Android Studio里,如果你想引入任何library到自己的项目中,只需要很简单的在module的build. ...
- 如何使Android Studio项目发布到Jcenter中
Android仓库 简单的普及下关于android的依赖仓库,有两种分别是Jcenter与Maven Central其实不管是Jcenter还是Maven Central都是Maven库. Jcent ...
随机推荐
- 如何通俗理解——>集群、负载均衡、分布式
转自:周洲 (Julie) 在“高并发,海量数据,分布式,NoSql,云计算......”概念满天飞的年代,相信不少朋友都听说过甚至常与人提起“集群,负载均衡”等,但不是所有人都有机会真正接触到这些技 ...
- JavaScript 巧学巧用
关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 由于工作和生活上的一些变化,最近写文章的频率有点下降了,实在不好意思,不过相信不久就会慢慢恢复过来, ...
- linux之rootfs (UBIFS)
转:http://www.360doc.com/content/11/1208/15/3700464_170655736.shtml 大大小小事情一堆,好久不更新了,这次记录下移植ubifs文件系统步 ...
- vagrant public_network 自定义静态 ip配置方法
Vagrant 创建虚拟化开发环境 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境. ...
- (原)未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值与DATEADD
SQLServer2014,查询分析器中 这样的脚本是没有问题的:AND TPO.CREATEON <= DATEADD(DAY, 1, '2017/3/3 0:00:00') 但.NET D ...
- RMAN冗余备份概念与方法
冗余备份概念 RMAN提供了一种更谨慎的备份策略:duplexed方式备份,其实质就是在生成备份集的同时,向指定位置copy指定份数(最大不超过4)的备份集复制,以避免在灾难性事故时数据库损坏和备份丢 ...
- 流畅的python第二十章属性描述符学习记录
描述符是对多个属性运用相同存取逻辑的一种方式.例如,Django ORM 和 SQL Alchemy等 ORM 中的字段类型是描述符,把数据库记录中字段里的数据与 Python 对象的属性对应起来.描 ...
- Java笔记14:泛型初探
一.泛型简介 泛型是从Java SE 1.5开始出现的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛 ...
- Hive不等值连接
select * from ( select t1.instalment_id as r_id , t2.instalment_id as p_id from (select instalment_i ...
- 绿化和卸载 DOS 批处理
@ECHO OFF&PUSHD %~DP0 &TITLE 绿化和选项 mode con cols= lines= color 2F Rd >NUL Md >NUL||(Ec ...