android studioAndroid StudioAndroid知识

Android Studio发布Android库到JCenter

2017-04-08  本文已影响234人  JohnyPeng

前言

虽然已经有很多大神发过这种文章,但是自己做的时候还是有一些疑问,所以发这篇文章记录一下,希望能给各位一些帮助。

准备工作

  1. 一个GitHub账号,当然这不是必要的
  2. 一个自己的Android Library
  3. 科学上网, Bintray似乎国内访问不了

发布步骤

JCenter仓库创建

JCenter 是由Bintray进行管理的,所以我们所创建的仓库也是由它进行管理。下面是详细步骤

1. 创建Bintray账号,这一步可以使用GitHub账号进行代替

注册.png

2. 创建用户组织(user orgnization)

创建用户组织.png

如图所示,jonnypeng就是在下创建的组织ID,这一步是必须的,创建一下,反正不会怀孕。。

选择创建方式.png 创建过程.png

在选择完创建方式之后就可以进行创建组织了,不过我就填了三个,图中Unique Identifier(唯一标志符)和组织名称是必填的,在创建用户组织里面显示的是jonnypeng是Unique Identifier而JSoftware则是组织名称。。像我这种有强迫症的人来说,最好取个带点意义的名字吧,免得到时候又要来删就不好了。。囧

3. 创建仓库

点击左下角Add New Repository的按钮进行创建仓库

添加仓库3.1.png 添加仓库3.2.png

在这里Type一般我们都是选择Maven仓库,Android Studio就支持这个,协议一般我都选择MIT,因为即使你选其他的也没卵用,因为这里是中国。。如果搞不清楚协议的区别的可以去看如何选择开源许可证?这篇文章,还有仓库是可以添加很多项目的,所以不要把项目名和仓库名混在一起了。创建完成之后Add New Repository就会有你的仓库

4. 创建Package

点击仓库进行创建Package

创建Package4.1.png 创建Package4.2.png 创建Package4.3.png

这里一张截图放不下,分两张,具体的注意点已经给出,上面就是创建JCenter的仓库的步骤了,接下来还要进行配置Android Studio。好累!!!

配置Android Studio Gradle

1. 配置Project 下Gradle

dependencies {
    classpath 'com.android.tools.build:gradle:2.3.0'
    //下面这两行是需要添加的
    classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
    classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

2. 配置API Key

忘记了,还要获取API Key。。囧

配置API Key 2.1.png 配置API Key 2.2.png

通过上面两步就可以获取到API Key,下面进行配置

bintray.user=johnypeng  //你的用户名,在右上角
bintray.apikey=************************************//API Key

3. 配置Module Gradle

下面的很多我也不知道是什意思,所以我就全复制过来了,大家按照自己项目的详细情况进行配置。。

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

version="0.1"
//这个地方比对一下自己的项目
android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    //这个地方不需要改
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.2.0'
    testCompile 'junit:junit:4.12'
}

def siteUrl = 'https://github.com/JohnyPeng/ActionSheetDialog'      // 项目的主页
def gitUrl = 'https://github.com/JohnyPeng/ActionSheetDialog.git'   // Git仓库的url
group = "com.android.actionsheetdialog"       // 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 'A bottom dialog like IOS'     //项目描述
                url siteUrl
                // Set your license
                licenses {
                    license {
                        //
                        name 'Massachusetts Institute of Technology'
                        url 'http://www.opensource.org/licenses/mit-license.php'
                    }
                }
                developers {
                    developer {
                        id 'JonnyPeng'        //填写的一些基本信息
                        name 'Jonny'
                        email 'godteen.peng@gmail.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 {
        userOrg = "jonnypeng"//JCenter上创建的的Organization
        repo = "custom"//你要上传的库的名字
        name = "ActionSheetDialog"    //发布到JCenter上的项目名字
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["MIT"]
        publish = true
    }
}

上传到JCenter中

在Android Studio 的Teminal中执行下面这两条命令,进行上传

./gradlew install //补充: Windows下面是使用gradlew install 和gradlew bintrayUpload
./gradlew bintrayUpload

点击项目名然后点击发布JCenter中即可,等待审核通过,好像审核通过一次之后就不用再进行审核了

上传到JCenter 1.1.png

通过之后就会出现

上传到JCenter 1.2.png

使用

//注意上米面那张截图中的红框
compile 'com.android.actionsheetdialog:actionsheet:0.1'

更新

如果有需要更新库的可以直接修改Module的Version然后进行上传。。


Paste_Image.png

然后执行

./gradlew install//补充: Windows下面是使用gradlew install 和gradlew bintrayUpload
./gradlew bintrayUpload
Paste_Image.png

可以看到版本号的更新,使用的时候当然两个都行

总结

以上就是Android库上传到JCenter的所有步骤,祝大家使用愉快!!!Chrome一直出现问题,输入中文就报错,烦死我了。。。

参考文章:http://www.jianshu.com/p/3d32ad7e8841

上一篇下一篇

猜你喜欢

热点阅读