本来我是不想写的,觉得网上的教程已经很多了。但是真的当我自己去实现的时候,发现坑还是很多的。所以将这次我发布到bintray网站上的里程记录下来。
简单介绍
Bintray其实只是一个网站,他们负责维护JCenter这个库,也就是说JCenter库是托管在BIntray网站上的。但是Bintray不只是只有JCenter库。我们也可以在上面创建自己的账号,生成自己的maven仓库。
现在的android studio默认依赖的就是jcenter库,但是老版本的android studio依赖的是mavenCentral库(因为上传库到mavenCentral对大部分开发者来说有点难,所以改成了jcenter)。
我们可以在工程的build.gradle文件下看到
好了 废话不多说、开始上手。
注册账号到Bintray
https://bintray.com,首先需要在这个网站上注册一个账号、
我这里直接用的github账号登录,但是需要邮箱验证。注意这里不能使用qq邮箱,网易邮箱注册,可以用谷歌邮箱,个人用的是foxmail(qq邮箱的另外一个名字)。
注册成功之后就是这样的:
然后我们要创建我们的仓库了,类似与github的仓库。
然后填写相应的信息就OK了,注意type要选择maven,还要如果你想非你的组织的人可以使用的话,需要选择public。
然后在仓库里面添加一个包。用于存储我们要发布的jar包。
然后填写相关信息,如图:
完成之后,我们的准备工作就完成了。~
项目编译,发布
首先我们肯是需要一个已经写好的library。项目结构如下:
如果没有也没关系,我们可以新建一个library,充分调试后(如果你只是想了解如何发布到bintry上的话,在library写一个测试方法即可),将其作为要发布的jar包。
好了,重头戏来了,我们要在android stduio中搭建我们的上传环境了。
- 在本工程的build.gradle文件中添加下面的代码:
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
在文件中的位置如图:注意,这里可能存在版本的问题,如果出现版本不对的话,尝试用最新版。
- 在library项目下添加bintrayUpload.gradle文件,文件内容如下:
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
// This is the library version used when deploying the artifact
version = "1.0.1"//这里是你的版本,当你需要上传新的版本到bintry上时,只需要修改这里的版本即可
def siteUrl = 'https://git.oschina.net/crazycodeboy/ScanProj' // 项目的主页
def gitUrl = 'https://git.oschina.net/crazycodeboy/ScanProj.git' // Git仓库的url
group = "reoger.hut.com.mylibrary" // Maven Group ID for the artifact,一般填你唯一的包名
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
name 'multi-format 1D/2D barcode image processing use zxing.'
url siteUrl
// Set your license
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'you id' //填写的一些基本信息(也可以不填)
name 'your name'
email 'your email'
}
}
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
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 {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
userOrg ="hut"//这个地方一定要填,一定要填 !!(这里需要修改你申请账号是的组织id)
repo = "Maven"//发布到bintray上的仓库名
name = "CheckEditText" //发布到bintray上的包名
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
javadoc { //jav doc采用utf-8编码否则会报“GBK的不可映射字符”错误
options{
encoding "UTF-8"
charSet 'UTF-8'
}
}
这里需要对其进行说明:
必改的内容有:
userOrg填写你的组织Id,可以在如图的界面找到相信的信息。
repo填写你的仓库名,name填写你的包名,可以在如图所示的地方找到相应的信息。
3.填写完毕之后,需要在library的build.gradle文件中添加一句:
apply from: "bintrayUpload.gradle"
4.最后,我们需要在项目的local.properties填写我们的身份信息。添加下面这两句到我们的目录下:
bintray.user=用户名
bintray.apikey=xxxxxxxxxxxxxxxxxx
用户名可以在这里找到
apiKey在这里找:
输入账号密码就可以活到apiKey了。
好了,上面的工作完成之后,我们离成功已经不太远了。
接下来在termial中输入命令:
gradlew install
如果没有错误的话,会提示BUILD SUCCESSEUL,然后我们在输入:
gradlew bintrayUpload
成功!~
去网站上看一看~:
已经有了~,大功告成。
添加依赖到项目中
发布之后,我们就可以将他引入到我们的项目中了。
在要引入项目的build.gradle目录下,添加依赖:
maven { url 'https://hut.bintray.com/Maven' }
其中的url就是我们的组织地址。
然后,在我们要依赖的moudle下,添加我们需要的依赖,例如:
这个可以在这里找到:
然后就可以使用我们之前写好的功能了~!!。
踩坑记录:
我遇到的情况基本上概括了,要是早一点看到这一片博客我就不会在这卡那么就了~~~~~~~~~~
http://blog.csdn.net/linglongxin24/article/details/53415932#comments