我是靠谱客的博主 粗暴红牛,最近开发中收集的这篇文章主要介绍jcenter,mavenCenter仓库创建、发布等完整流程详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文将详细讲解2个maven仓库jcenter、mavenCenter的创建、注册、发布、上传及其怎样将jcenter中发布的文件自动上传到mavenCenter。


何为jcenter,mavenCenter?

jcenter。

jcenter是一个由 bintray.com维护的Maven仓库 。你可以在这里看到整个仓库的内容。

我们在项目的build.gradle 文件中如下定义仓库,就能使用jcenter了:

allprojects {
repositories {
jcenter()
}


Maven Central

Maven Central 则是由sonatype.org维护的Maven仓库。你可以在这里看到整个仓库。

注:不管是jcenter还是Maven Central ,两者都是Maven仓库

我们在项目的build.gradle 文件中如下定义仓库,就能使用Maven Central了:

allprojects {
repositories {
mavenCentral()
}
}


为什么会有2个maven标准库?为什么android studio早期自动引入的是mavenCenter库,之后却换成了jcenter这个标准库?

虽然jcenter和Maven Central 都是标准的 android library仓库,但是它们维护在完全不同的服务器上,由不同的人提供内容,两者之间毫无关系。在jcenter上有的可能 Maven Central 上没有,反之亦然。

事实上两个仓库都具有相同的使命:提供Java或者Android library服务。上传到哪个(或者都上传)取决于开发者。

起初,Android Studio 选择Maven Central作为默认仓库。如果你使用老版本的Android Studio创建一个新项目,mavenCentral()会自动的定义在build.gradle中。

但是Maven Central的最大问题是对开发者不够友好。上传library异常困难。上传上去的开发者都是某种程度的极客。同时还因为诸如安全方面的其他原因,Android Studio团队决定把默认的仓库替换成jcenter。正如你看到的,一旦使用最新版本的Android Studio创建一个项目,jcenter()自动被定义,而不是mavenCentral()。

有许多将Maven Central替换成jcenter的理由,下面是几个主要的原因。

  • jcenter通过CDN发送library,开发者可以享受到更快的下载体验。

  • jcenter是全世界最大的Java仓库,因此在Maven Central 上有的,在jcenter上也极有可能有。换句话说jcenter是Maven Central的超集。

  • 上传library到仓库很简单,不需要像在 Maven Central上做很多复杂的事情。

  • 友好的用户界面

  • 如果你想把library上传到 Maven Central ,你可以在bintray网站上直接点击一个按钮就能实现。


仓库中存储的有两种类型的library:jar 和 aar。jar文件大家都知道,但是什么是aar文件呢?

aar文件

aar文件时在jar文件之上开发的。之所以有它是因为有些Android Library需要植入一些安卓特有的文件,比如AndroidManifest.xml,资源文件,Assets或者JNI。这些都不是jar文件的标准。

因此aar文件就时发明出来包含所有这些东西的。总的来说它和jar一样只是普通的zip文件,不过具有不同的文件结构。jar文件以classes.jar的名字被嵌入到aar文件中。其余的文件罗列如下:

  • /AndroidManifest.xml (mandatory)
  • /classes.jar (mandatory)
  • /res/ (mandatory)
  • /R.txt (mandatory)
  • /assets/ (optional)
  • /libs/*.jar (optional)
  • /jni//*.so (optional)
  • /proguard.txt (optional)
  • /lint.jar (optional)

在了解以上关于maven库的基本概念之后,要进行maven库的各种操作还必须了解build.gradle这个脚本文件,而了解这个文件就不行了解groovy动态脚本语言及其task,project,plugin等各种概念。这些东西足够写上好几篇文章了,本文主要对maven库的各种操作进行讲解,因此以上概念请查看相关技术文章,有助于来理解本文后续内容。


怎样上传jar、aar等到jcenter?
1、首选需要创建注册一个bintray账户,注册网址:https://bintray.com。
这里写图片描述

注册bintray账户的时候请注意一个问题,bintray账户分为企业账户和个人账户,对于个人来说最好注册个人账户,因为个人账户在把上传的内容推送到远端的时候需要执行 Add to JCenter按钮,只有点击这个按钮才能把上传的包推向远程;而企业账户最开始注册是没有这个按钮的,因为企业账户需要审核,可能会长到一个月。
这里写图片描述


2、账户注册完毕之后,回到android studio的build.gradle,开始脚本编程了。

标准脚本格式,可以完全贴入build.gradle中,替换相关内容即可。

标准jcenter发布脚本:
//必须引入这2个插件
apply plugin : 'com.github.dcendents.android-maven'
apply plugin : 'com.jfrog.bintray'

// This is the library version used when deploying the artifact
group = PROJ_GROUP
    version = PROJ_VERSION //PROJ_VERSION 替换成自己的的版本号

    install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                description PROJ_DESCRIPTION //替换成自己的工程描述

                // Add your description here
                name PROJ_POM_NAME  //替换成自己的工程名称
                url PROJ_WEBSITEURL //替换成自己的工程网络地址,例如github中发布的源码地址

                // Set your license
                licenses {
                    license {
                        name PROJ_LICENCE_NAME //替换证书类型,例如'The Apache Software License, Version 2.0'
                        url PROJ_LICENCE_URL   //替换证书地址,例如'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        distribution PROJ_LICENCE_DEST //证书描述
                    }
                }
                developers {
                    developer {
                        id DEVELOPER_ID //替换成自己的id
                   

最后

以上就是粗暴红牛为你收集整理的jcenter,mavenCenter仓库创建、发布等完整流程详解的全部内容,希望文章能够帮你解决jcenter,mavenCenter仓库创建、发布等完整流程详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部