• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android Studio发布到Jcenter

Android Studio发布到Jcenter

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android jcenter,jcenter,jcenter是什么,gradle jcenter,jcenter.bintray等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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
//        }
    }

通俗易懂,一目了然,就不多做解释了。

2.4 剩余配置

在Model对应的gralde文件中配置签名\引入bintray.gradle,最终代码如下,如看不懂配置相关,阅读这篇 或者自行阅读gradle for android

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    signingConfigs {
        config {
            keyAlias 'guolei'
            keyPassword '123456'
            storeFile file('guolei.jks')
            storePassword '123456'
        }
    }
    defaultConfig {
        applicationId "com.gl.draggridview"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }
    }
}

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 为我的用户名,查看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

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android 快速发布开源项目到jcenter
  • Android Studio发布到Jcenter

相关文章

  • 2017-05-26BroadcastReceiver--Android广播机制,broadcastreceiver
  • 2017-05-26使用C++实现QML的TreeView Model (二)
  • 2017-05-26Java的进化? Kotlin初探与集成Android项目
  • 2017-05-26PHP的readfile下载大文件时卡住
  • 2017-05-26Android属性动画
  • 2017-05-26Android之网络数据存储,android数据存储
  • 2017-05-26学习《第一行代码》使用实机测试所遇问题(一),《第一行代码》
  • 2017-05-26Android开发学习——应用安装过程,android开发
  • 2017-05-26Android应用程序内存泄漏介绍
  • 2017-05-26ViewPager+GridView实现首页导航栏布局分页效果,viewpagergridview

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 配置Nginx反向代理Exchange 2007上的OWA
    • Android安全机制
    • andorid build tools 19.1,andorid19.1
    • Linux大文件已删除,但df查看已使用的空间并未减少解决
    • 转载:内存泄露与内存溢出的区别,转载泄露溢出区别
    • android的color整理(一),androidcolor整理
    • android自定义圆角背景实现富文本标题展示
    • Android 手机卫士17--缓存清理,android17--
    • 硅谷新闻5--顶部新闻轮播图事件处理,硅谷5--
    • 自己写的书《深入理解Android虚拟机内存管理》,不出版只是写着玩,深入理解java虚拟机

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有