上传项目到Jcenter

1.把自己需要上传的项目打包(.jar or .aar)

2.创建Bintray帐号并创建对应的Jcenter仓库

3.通过Gradle命令上传

4.注意事项


首先来说第一点:

jar、aar两者区别

*.jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。

*.aar: 包含所有资源 ,class以及res资源文件全部包含

如果你只是一个简单的类库那么使用生成的.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用.aar文件。

使用方式:

*.jar:拷贝到:libs目录,eclipse直接导入即可,AndroidStudio项目中添加:

dependencies { 

compile fileTree(include: [‘*.jar’], dir: ‘libs’) 

重新编译一次项目既可完成加载。

那么要如何生成jar文件或者aar文件呢,这里以aar为例子

首先:

使用android studio生成一个module

《上传项目到Jcenter》 1

在新建的module里面把自己的类文件、布局文件、资源文件等放进去,rebuild一下,就可以了。

生成的aar文件路径是

《上传项目到Jcenter》 2

右键aar文件,show in exploer,即可找到aar文件取出来给别的项目使用

使用方法:

(1)将aar包复制到lib目录下

(2)配置build.gradle文件:

repositories { 

flatDir { 

dirs ‘libs’ 

}

compile(name:’camerascan-1.0’, ext:’aar’) 

第一步就完成了;

第二步:创建Bintray帐号

https://bintray.com 

创建完帐号后,接着需要创建Organization

《上传项目到Jcenter》 3

创建成功后,然后在Organization里面创建一个仓库(Create a repository)

《上传项目到Jcenter》 4

这里type选择maven,其他随意

《上传项目到Jcenter》 5

创建完仓库(respository)后,需要新建一个包(package),红色箭头标记那里

这个包就是你需要上传的aar文件存储的地方

《上传项目到Jcenter》 6

这里可以填写一些基本信息,名字,包的描述,licenses这里选择Apache-2.0,版本随意,这里我写的是1.0.0

《上传项目到Jcenter》 7

基本工作就做好了,接下来就是第三步了

打开你的as,在项目中local.properties 中添加 user和apikey

这里的user是

《上传项目到Jcenter》 8

然后点击Edit Profile ,最后一项API Key,点击show就能看到了

《上传项目到Jcenter》 9
《上传项目到Jcenter》 10

接着 在项目最外层的build.gradle 中添加如下两行代码

《上传项目到Jcenter》 11

接下来在你要上传的Libray的build.gradle 中添加代码:

apply plugin:’com.android.library’

//添加两个插件

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.0”

android {

    compileSdkVersion 26

    buildToolsVersion “26.0.2”

    resourcePrefix “customView__”

    defaultConfig {

        minSdkVersion 15

        targetSdkVersion 26

        versionCode1

        versionName”1.0″

        testInstrumentationRunner”android.support.test.runner.AndroidJUnitRunner”

    }

    buildTypes {

        release {

            minifyEnabledfalse

            proguardFiles getDefaultProguardFile(‘proguard-android.txt’),’proguard-rules.pro’

        }

}

    tasks.withType(Javadoc) {

        options.encoding= “UTF-8”  // 避免GBK编码格式错误

    }

}

dependencies {

    implementation fileTree(dir:’libs’,include:[‘*.jar’])

    implementation ‘com.android.support:appcompat-v7:26.1.0’

    testImplementation ‘junit:junit:4.12’

    androidTestImplementation ‘com.android.support.test:runner:1.0.2’

    androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.2’

}

def siteUrl= ‘https://gitee.com/baiaj/SearchView’      // 项目的主页

def gitUrl= ‘https://gitee.com/baiaj/SearchView.git’  // Git仓库的url

group= “com.clt5201314.baiajRepo.SearchView”

install {

    repositories.mavenInstaller {

        // This generates POM.xml with proper parameters

        pom{

            project{

                packaging’aar’

                // Add your description here

                name’Android SearchView widget’

                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’baiaj’

                        name’byerman’

                        email’baiajclt@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= “clt5201314″//JCenter上创建的的Organization

        repo= “baiajRepo”//你要上传的库的名字

        name= “SearchView”    //发布到JCenter上的项目名字

        websiteUrl= siteUrl

vcsUrl= gitUrl

licenses = [“Apache-2.0”]

        publish= true

    }

}

接下来在Terminal命令行那里输入 

gradlew install 

gradlew bintrayUpload

就可以了上传了

上传成功后到对应的Package里面即可查到对应的消息

点击Add to JCenter,填写一些提交信息,等待审批通过

《上传项目到Jcenter》 12

一般第二天审批通过就可以在AS里面调用这个库了

调用方式 implementation ‘com.android.support:appcompat-v7:26.1.0’

注意事项

1.在上传过程中发现提示:编码GBK的不可映射字符->请正确配置javadoc编码

按上面代码即可解决

tasks.withType(Javadoc) {

        options.encoding= “UTF-8”  // 避免GBK编码格式错误

    }

    原文作者:baiaj
    原文地址: https://www.jianshu.com/p/60cbf63fbda7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞