大器晚成行代码引进Module

2019-11-26 16:35 来源:未知

前方大家运用本人包裹的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开关。
图片 1

跻身Add New Repository页面,Name输入框输入module名称(okhttpencapsulation),Type接收Maven。然后点击最终的Create按钮,Repository就创办成功了。
图片 2

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'

改善后效果图如下:
图片 3

改善要上传的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。

    configurations = ['archives']
    pkg {
        repo = "okhttpencapsulation"  //Repository名字 需要自己在bintray网站上先添加
        name = "okhttpencapsulation"// 发布到Bintray上的项目名字,这里的名字不是compile 'com.ansen.library:circleimage:1.0.1'中的circleimage。
        userOrg = 'anhui'//Bintray的组织id
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true // 是否是公开项目。
    }
}

都有注释,当不经常候的时候一向复制代码就行。然后改良部分值。在最终的bintray里面有从local.properties文件中获得客商名跟apikey。那是保密新闻,大家不可能暴光给外人,build.gradle文件大家会付出到git服务器上,然而local.properties文件不会交到。

开荒OkHttpEncapsulation/local.properties文件,在尾巴部分增加两行,那几个key是本人不管校订过的,是个错误的key,必要团结去替换:

bintray.user=anhui
bintray.apikey=ac8137c9138a8b49a18a323260041fcf1f75a6f

user是我们报了名的名字,apikey供给去jcenter官方网站查看。步向改过顾客分界面,点击右边apikey按键,然后输入密码就会见到了。把这几个key复制到local.properties中替换掉。
图片 4

gradle命令上传

上传项目到jcenter须要用到gradle命令,首先把gralde参预各景况变量。mac下参加情形变量教程,windows景况不会踏进入国碰到变量的活动检索下:

http://blog.csdn.net/u013424496/article/details/52684213

在android studio底部有个Terminal的开关。点击它步入Terminal分界面。
图片 5

输入指令:

gradle install

现身BUILD SUCCESSFUL就象征成功了。

接轨输入指令,提交项目到bintray:

gradle clean build bintrayUpload

本条命令会提示上传进程,上传到百分之百就水到渠成了最后也会冒出BUILD SUCCESSFUL。到了这一步你的进程条已经到了五分四了,就差最后一步了。

Add to JCenter

咱俩付出成功了以后吧赶紧打开jcenter官方网址看看有未遂。在首页点击大家的package(okhttpencapsulation)名称,在这里个页面应该就会旁观大家付出的门类了,点击项目步向项目详细页。
图片 6
我们能够看看版本,见到gradle在线援引的代码,还能切换成Maven跟lvy方式。然后侧边有个Add to JCenter,各样品种刚刚提交都一定要查处的,所以我们点击Add to JCenter去开展核实。审查成功就能够生机勃勃行代码援用那一个module啦。

源码下载

假设您想第一时间看自身的最后一段时期文章,扫码关怀群众号,周周不定时推送Android开荒实战教程小说...

      Android开发666 - 安卓开发技术分享
             扫描二维码加关注

图片 7

TAG标签:
版权声明:本文由金沙澳门官网4166发布于文物考古,转载请注明出处:大器晚成行代码引进Module