文档章节

Android Studio 打包到 JCenter

Kerison
 Kerison
发布于 2015/05/20 16:41
字数 792
阅读 36
收藏 1

既然说到Android Studio就是唠叨一下坑,最起码自己遇到问题查起来方便些

  1. 版本问题,在一路走来的过程中,几次抛弃,几次爱惜,不过现在好多了,但是如果学习的时候使用的是旧版本的资料,可能会遇到一些莫名的问题,此类问题解决之道——使用最新版本,包括gradle

  2. 墙的问题,这个——没辙,自行解决。

本文主要说打包共享资源的问题,就不多说了

  1. 注册 https://bintray.com,发布的话总的有个账号之类的

  2. 记住两个关键词,点击自己的头像-->Edit-->APIKey

bintray.user=用户名

bintray.apikey=xxxx

3.接下来就是配置了

项目的build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.2'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files

        //自动化maven打包插件
        classpath 'com.github.dcendents:android-maven-plugin:1.2'
        //自动上传至Bintray平台插件
        classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0"
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

Librady Model 的build.gradle

apply plugin: 'com.android.library' //应用库
apply plugin: 'com.github.dcendents.android-maven' //maven 打包
apply plugin: 'com.jfrog.bintray' //bintray上传

//jar 版本
version = "1.0.0" 

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
    resourcePrefix "kerison_logkit_"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

//联系信息
def siteUrl = "https://github.com/xxx"
def gitUrl = "https://github.com/xxx.git"

//唯一包名
group = "cn.kerison"

install {

    repositories.mavenInstaller {
        // This generates POM.xml with proper paramters
        pom {
            project {
                
                //maven 打包类型
                packaging 'aar'

                //添加项目描述
                name '...'

                //站点链接
               url siteUrl

                //设置开源证书信息
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }

                //添加开发者信息
                developers {
                    developer {
                        id 'xxx'
                        name 'xxx'
                        email 'xxx'
                    }
                }

                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl
                }
            }
        }
    }
}

//编译源码
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    //javadoc 默认不支持GBK
    options.encoding = "utf-8"

    //支持依赖包的javadoc,默认是android
   // classpath += project.files(configurations.compile.files,android.getBootClasspath().join(File.pathSeparator))
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

//配置上传Bintray相关信息
bintray {
    //读取Bintray帐号和密码。
    //一般的为了保密和安全性,在项目的local.properties文件中添加两行句话即可:
    //bintray.user=username
    //bintray.apikey=apikey
    user = properties.getProperty("bintray.user")
    key = properties.getProperty("bintray.apikey")

    configurations = ['archives']

    pkg {
        repo = "maven"//上传的中央仓库名称
        name = "xxx"//上传的项目的名字
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true  //是否发布
    }
}

项目的local.properties,这个配置一般是本地的,所以账户信息卸载里面比较安全些

bintray.user=用户名
bintray.apikey=[apikey]

4.接下来就可以编译安装测试,发布了

gradlew install  //安装到本地 会生成默认的pom.xml文件

gradlew bintrayUpload

然后已经发布到maven了,如果需要在android studio中直接使用,发布到jcenter还需要申请一下

https://bintray.com/bintray/jcenter

然后……就是等待审核了……[俺是四个多小时]

最后引用的路径为group:name:verison

cn.kerison:logkit:1.0.0


只是搜不到还是得上传签名后的文件到maven center

© 著作权归作者所有

下一篇: Android网络通信
Kerison
粉丝 1
博文 28
码字总数 13985
作品 0
南京
私信 提问
Android Studio发布项目到Jcenter仓库步骤

前言:Android Studio中把项目的lib库提交到Jcenter仓库中,需要使用到Bintray,Bintray是jCenter的提供商,他支持上传lib到多个平台,jCenter只是众多平台中的一个,形象的说jCenter是位于某...

Hans的博客
2018/09/29
0
0
FileDownloader 很棒的文件下载库

有一个很好用的文件下载库,这里做个记录; 1、内容大纲 文件库源码导入项目 com.jfrog.bintray的作用 2、文件下载开源库使用 先说说这个这个优秀文件下载开源库:FileDownloader 下面是部分...

_无问西东
2018/09/12
0
0
Android Studio把library分发到jCenter和Maven Central

如果你想在Android Studio中引入一个library到你的项目,你只需添加如下的一行代码到模块的build.gradle文件中。 1 2 3 dependencies { compile 'com.inthecheesefactory.thecheeselibrary:...

vane_
2015/07/01
0
0
bulid.gradle 解析

外层的bulid.gradle文件 两处的repositories的闭包中都声明了jcenter() 这行配置。 jcenter是一个代码托管仓库,很多Androdi开源项目都会选择将代码托管到jcenter上,声明了这个配置之后,可...

Jerry_0221
2018/06/12
0
0
将自己的开源项目提交到JCenter

开始 最近自己写了一个开源控件,是有关标签流控件的(从服务器端获取标签,然后将标签自适应的放进一个容器里)。现在控件写完了,自己就想将它提交到Maven的中心仓库或者是JCenter。可是自己对...

fyales
2015/03/10
0
1

没有更多内容

加载失败,请刷新页面

加载更多

如何远程调试部署在CloudFoundry平台上的nodejs应用

网络上关于如何本地调试nodejs应用的教程已经很多了,工具有Chrome开发者工具,Visual Studio Code,和nodejs周边的一些小工具等等。 在实际情况中,我们可能遇到本地运行良好,但是部署到C...

JerryWang_SAP
25分钟前
3
0
微信扫码访问网站调用默认浏览器打开如何实现?

我们在微信内分享链接或二维码的时候,我们会发现我们的网站是可以在浏览器里正常打开的,但就是不能在微信里打开,提示 “ 已停止访问该网页 ”,无论是聊天框也一样。说是系统检测到您的网...

明尼苏达哈士奇
33分钟前
3
0
一份Java程序员进阶架构师的秘籍,你离架构师还差多远

一、如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并...

我最喜欢三大框架
41分钟前
2
0
想说再见不容易,win7最新市占率依然超36%

微软正在通过努力让Windows 7用户升级至Windows 10,不过从目前的市占率来看,他们还是要加把劲了。 据最新的市场份额看,Windows 10在本月的市场份额有所提升,从43.62%增长到44.10%。另一...

linuxCool
52分钟前
4
0
SQL的优化

对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 对查询进行优化,要尽量避免全表扫描,首先应考虑在进行条件判断的字段上创建了索引。 应尽量避...

咸鱼-李y
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部