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

1,055 阅读3分钟
原文链接: blog.csdn.net

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

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

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

新建项目

首先进这个网站申请账号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'
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'
}

def siteUrl = 'https://github.com/choubaguai/PhotoSelecter'     
def gitUrl = 'https://github.com/choubaguai/PhotoSelecter'     
group = "com.superbro"   

install {
    repositories.mavenInstaller {
       
        pom {
            project {
                packaging 'aar'
               
                name 'Android Photo Selecter'    
                url siteUrl
               
                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")   
    key = properties.getProperty("bintray.apikey")  
    configurations = ['archives']
    pkg {
        repo = "maven"
        name = "photoselecter"   
        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里面添加:



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 和 用户名的值写错了。

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