设为首页 加入收藏

TOP

Android Studio发布项目到jcenter,一行代码引入Module(一)
2017-10-13 10:36:48 】 浏览:5333
Tags:Android Studio 发布 项目 jcenter 一行 代码 引入 Module

前面我们使用自己封装的okhttp项目时候,只需要app/build.gradle文件中加一行代码就能使用项目。

compile 'com.ansen.http:okhttpencapsulation:1.0.1'

那是因为我之前就把封装的module提交到了jcenter服务器。所以android sutdio把从jcenter服务器把类库下载下来。

提交项目到jcenter

当我们做好一个轮子的时候,或者项目中有一些好的module想分享给别人用的时候,首先把代码提交到github(全球男性交友平台)上开源,但是这还不够,别人拿你的代码作为module依赖太麻烦了,比较酷的方法应该是一行代码引用。

首先我们得有一个jcenter账号

这个网站注册有点坑爹,有两种方式(企业版跟个人免费版),个人版的项目必须要开源,个人注册地址如下:

https://bintray.com/signup/oss

一定要注意不要注册了企业版,没法直接切换成个人版,必须要得试用期过重新注册。用我贴的链接注册就行。还有注册邮箱不能是国内163邮箱或者qq邮箱,我用的是google邮箱注册的。

上传项目到jcenter

jcenter上创建Repository

登录jcenter账号,进入用户首页,点击Add New Repository按钮。
jcenter_main

进入Add New Repository页面,Name输入框输入module名称(okhttpencapsulation),Type选择Maven。然后点击最后的Create按钮,Repository就创建成功了。
create_repository

Android Studio中添加代码

项目的build.gradle中加入如下代码:

classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'

修改后效果图如下:
project_build

修改要上传的module下的build.gradle。例如我这边路径是:OkHttpEncapsulation/okhttpencapsulation/build.gradle。在文件尾部增加如下代码:

// 这里添加下面两行代码。
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

// 定义两个链接,下面会用到。
def siteUrl = 'https://github.com/ansen666/OkHttpEncapsulation' // 项目主页。
def gitUrl = 'https://github.com/ansen666/OkHttpEncapsulation.git' // Git仓库的url。

group = "com.ansen.http"// 唯一包名,比如compile 'com.ansen.http:okhttpencapsulation:1.0.1'中的com.ansen.http就是这里配置的。
version = "1.0.1"//项目引用的版本号,比如compile 'com.ansen.http:okhttpencapsulation:1.0.1'中的1.0.1就是这里配置的。

install {
    repositories.mavenInstaller {
        // 生成pom.xml和参数
        pom {
            project {
                packaging 'aar'
                // 项目描述,复制我的话,这里需要修改。
                name 'okhttpencapsulation'// 可选,项目名称。
                description 'okhttp project describe'// 可选,项目描述。
                url siteUrl // 项目主页,这里是引用上面定义好。

                // 软件开源协议,现在一般都是Apache License2.0吧,复制我的,这里不需要修改。
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }

                //填写开发者基本信息,复制我的,这里需要修改。
                developers {
                    developer {
                        id 'ansen' // 开发者的id。
                        name 'ansen' // 开发者名字。
                        email 'iprivateworkemail@gmail.com' // 开发者邮箱。
                    }
                }

                // SCM,复制我的,这里不需要修改。
                scm {
                    connection gitUrl // Git仓库地址。
                    developerConnection gitUrl // Git仓库地址。
                    url siteUrl // 项目主页。
                }
            }
        }
    }
}

// 生成jar包的task,不需要修改。
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

// 生成jarDoc的task,不需要修改。
task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    // destinationDir = file("../javadoc/")
    failOnError false // 忽略注释语法错误,如果用jdk1.8你的注释写的不规范就编译不过。
}

// 生成javaDoc的jar,不需要修改。
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}
artifacts {
    archives javadocJar
    archives sourcesJar
}

// 这里是读取Bintray相关的信息,我们上传项目到github上的时候会把gradle文件传上去,所以不要把帐号密码的信息直接写在这里,写在local.properties中,这里动态读取。
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
    user = properties.getProperty("bintray.user") // Bintray的用户名。
    key = properties.getProperty("bintray.apikey") // Bintray刚才保存的ApiKey。

    configurat
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇监听短信(监听系统广播) 下一篇播放音乐案例

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目