android 将开源项目发布到JCenter及问题总结

大家都知道,android studio 有一个功能就是使用第三方jar的时候在build.gradle中直接

 compile 'com.android.support:design:23.4.0'

那么这段代码使用的过程中android studio都做了什么事情呢,其实我也不知道,哈哈,但是我猜想应该是从某一个服务器上下载了代码吧。
那么我们开始今天的学习,把我们自己的代码上传到天上,然后这样下载下来。
首先呢,新建一个project(project知道吧,不是eclipse的project,是android studio的projec,还不知道的话就去抽自己个大嘴巴子):

新建项目

首先进这个网站申请账号https://bintray.com,申请完了做下面的工作。

1.在project的build.gradle里面添加如下代码:

 classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
 classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'

没有图知道你们不会的,因为我也不会哈哈:

这里写图片描述

2.module的build.gradle里面添加如下代码,把你没有的写上,有的不要动

apply plugin: 'com.android.application'
//配置插件方法1
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
//提交到仓库中的版本号
version = "1.0.0"
android {
    compileSdkVersion 24
    buildToolsVersion "23.0.3"
    resourcePrefix "superbro"
    defaultConfig {
        applicationId "com.superbro.myapplication"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0-beta1'
    compile 'com.android.support:design:24.0.0-beta1'
    compile 'com.android.support:support-v4:24.0.0-beta1'
}

//方法1
def siteUrl = 'https://github.com/choubaguai/PhotoSelecter'      // 项目的主页   这个是说明,可随便填
def gitUrl = 'https://github.com/choubaguai/PhotoSelecter'      // Git仓库的url  这个是说明,可随便填
group = "com.superbro"    // 这里是groupId ,必须填写  一般填你唯一的包名

install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                // Add your description here
                name 'Android Photo Selecter'     //项目描述
                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 'superbro'        //填写开发者的一些基本信息
                        name 'superbro'    //填写开发者的一些基本信息
                        email 'superbro@163.com'   //填写开发者的一些基本信息
                    }
                }
                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")    //读取 local.properties 文件里面的 bintray.user
    key = properties.getProperty("bintray.apikey")   //读取 local.properties 文件里面的 bintray.apikey
    configurations = ['archives']
    pkg {
        repo = "maven"
        name = "photoselecter"    //发布到JCenter上的项目名字,必须填写
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

//这段代码一会给你们解释哈
javadoc {
    options{
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/7/docs/api"
    }
}

3.在local.propertis里面添加:

//username就是你刚才注册的时候写的用户名,注意不是邮箱,
//paikey是这个网站给你生成的一个apikey,怎么找到它呢,看下面的图
bintray.user=username
bintray.apikey=paikey

这里写图片描述

有人会问了,怎么进入这个界面,好吧,看IP,自己YY。
然后呢,进去之后点击1,会让你输入密码,密码输入完了,点击2,就会看到3了,然后复制粘贴。

这里写图片描述

好了,到了这一步,已经把所有的准备工作做好了,然后呢,sync你的项目

这里写图片描述

等同步完了,最重要的时刻来了,注意,在android studio的下面那一排找到

这里写图片描述

Terminal,在里面输入

gradlew install

如果没有什么问题,会显示:

BUILD SUCCESSFUL

现在我们已经成功一半了。下一步是上传编译的文件到bintray,使用如下的命令:

gradlew bintrayUpload

如果没有什么问题,会显示:

BUILD SUCCESSFUL

这时候去你刚才注册的网站里就可以看到你上传的项目了,还没有完,你打开项目,右下角有一个

这里写图片描述

点击一下进去之后啥也别弄,直接点击下面的send就OK了,
然后等管理员审核通过了之后你就可以使用了,怎么使用?好吧,

这里写图片描述


下面是问题总结,
1,提示GBK什么的乱码,一般都是中文问题,你提交的代码里面有中文注释或者其他的中文,解决办法就是添加上面的代码:

javadoc {
    options{
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/7/docs/api"
    }
}

2.提示找不到class或者intface或者enum,解决办法如下:
用editplus把你文件的编码格式改成UTF-8,不要用notepad,我用了没效果。

3.提示找不到用户名和APIKEY,原因是大小写一定要统一。

4.提示HTTP/1.1 401 Unauthorized [message:This resource requires authentication]

apikey 和 用户名的值写错了。

基本上就是这几个问题。结束。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值