记录Bintray网站发布Library

记录Bintray网站发布Library

Bintray其实只是一个网站,他们负责维护JCenter这个库,也就是说JCenter库是托管在BIntray网站上的。但是Bintray不只是只有JCenter库。我们也可以在上面创建自己的账号,生成自己的maven仓库。

现在的android studio默认依赖的就是jcenter库,但是老版本的android studio依赖的是mavenCentral库(因为上传库到mavenCentral对大部分开发者来说有点难,所以改成了jcenter)。
我们可以在工程的build.gradle文件下看到

这里写图片描述
默认的依赖库.png

好了 废话不多说、开始上手。


注册账号到Bintray

  • https://bintray.com,首先需要在这个网站上注册一个账号、这里写图片描述
    Paste_Image.png

我这里直接用的github账号登录,但是需要邮箱验证。注意这里不能使用qq邮箱,网易邮箱注册,可以用谷歌邮箱,个人用的是foxmail(qq邮箱的另外一个名字)。

注册成功之后就是这样的:
这里写图片描述
Paste_Image.png

然后我们要创建我们的仓库了,类似与github的仓库。
这里写图片描述
创建仓库.png
然后填写相应的信息就OK了,注意type要选择maven,还要如果你想非你的组织的人可以使用的话,需要选择public。这里写图片描述
Paste_Image.png
然后在仓库里面添加一个包。用于存储我们要发布的jar包。这里写图片描述
Paste_Image.png
然后填写相关信息,如图:
这里写图片描述
Paste_Image.png

完成之后,我们的准备工作就完成了。~

项目编译,发布

首先我们肯是需要一个已经写好的library。项目结构如下:

这里写图片描述
Paste_Image.png

如果没有也没关系,我们可以新建一个library,充分调试后(如果你只是想了解如何发布到bintry上的话,在library写一个测试方法即可),将其作为要发布的jar包。这里写图片描述
Paste_Image.png
好了,重头戏来了,我们要在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'  

在文件中的位置如图:注意,这里可能存在版本的问题,如果出现版本不对的话,尝试用最新版。
这里写图片描述
Paste_Image.png

  • 在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'
    }

这里需要对其进行说明:
必改的内容有:
这里写图片描述
Paste_Image.png
userOrg填写你的组织Id,可以在如图的界面找到相信的信息。
这里写图片描述
Paste_Image.png
repo填写你的仓库名,name填写你的包名,可以在如图所示的地方找到相应的信息。
这里写图片描述
Paste_Image.png

  • 填写完毕之后,需要在library的build.gradle文件中添加一句:
apply from: "bintrayUpload.gradle"

最后,我们需要在项目的local.properties填写我们的身份信息。添加下面这两句到我们的目录下:

bintray.user=用户名
bintray.apikey=xxxxxxxxxxxxxxxxxx

用户名可以在这里找到
这里写图片描述
Paste_Image.png
apiKey在这里找:
这里写图片描述
Paste_Image.png
这里写图片描述
Paste_Image.png
好了,上面的工作完成之后,我们离成功已经不太远了。

接下来在termial中输入命令:

gradlew install

如果没有错误的话,会提示BUILD SUCCESSEUL,然后我们在输入:

gradlew bintrayUpload

这里写图片描述
Paste_Image.png
成功!~
去网站上看一看~:
这里写图片描述
Paste_Image.png

添加依赖到项目中

发布之后,我们就可以将他引入到我们的项目中了。

在要引入项目的build.gradle目录下,添加依赖:

maven { url 'https://hut.bintray.com/Maven' }

这里写图片描述
Paste_Image.png
其中的url就是我们的组织地址。
这里写图片描述
Paste_Image.png
然后,在我们要依赖的moudle下,添加我们需要的依赖,例如:
这里写图片描述
Paste_Image.png
这个可以在这里找到:
这里写图片描述
Paste_Image.png
然后就可以使用我们之前写好的功能了~!!。

简单发布写法

-root build.gradle 中的dependencies块中添加如下:

  classpath 'com.novoda:bintray-release:0.5.0'//修改此处版本号为 0.5.0---修改之前是0.3.4

-root build.gradle 中的allprojects中添加如下:

	repositories {
	    jcenter()
            mavenCentral()
        }
        tasks.withType(Javadoc) {
        options {
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
        options.addStringOption('Xdoclint:none', '-quiet')
    }

这里写图片描述
Paste_Image.png

在要发布的lib module 的build.gradle中加入

apply plugin: 'com.novoda.bintray-release'


-如果是项目的要注意下,要将apply plugin: 'com.android.application'
改成apply plugin: 'com.android.library'

这里写图片描述
Paste_Image.png
library的build.gradle中添加

//添加
publish {
    userOrg = 'xxx'      //bintray 如果有组织就是组织名,反之用户名
    repoName = 'maven' //仓库名
    uploadName = 'GameSDK' //项目名
    groupId = 'com.test'         //compile引用时的第1部分groupId
    artifactId = 'game-sdk'     //compile引用时的第2部分项目名
    publishVersion = '1.0.0'    //compile引用时的第3部分版本号
    desc = 'This is a game sdk extend library'
    website = '网站网址或者github地址'
    licences = ['Apache-2.0']
}

生成后的依赖地址:compile 'com.test:game-sdk:1.0.0'
/**
 *注:发布成功后:
 * 1、在要引入项目的 build.gradle目录下,添加依赖:
 * repositories {
 *       maven {
 *          url 'https://userOrg.bintray.com/maven'
 *     }//指定自己的maven路径{https://xxxx.bintray.com/maven},在未将library加入的jcenter中前,这是必须的
	//userOrg 如果有组织就是组织名,反之用户名
 *  }
 *
 *  2、在dependencies中添加依赖:
 *  compile 'com.test:game-sdk:1.0.0'
 */

-打包发布时依然可如下写法:

gradlew clean build bintrayUpload -PbintrayUser=用户名 -PbintrayKey=apiKey -PdryRun=false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值