Android程序员

Bintray项目发布-基础

2018-12-23  本文已影响2人  十思叶

前言

发布项目的定义。发布项目到远程JCenter仓库,准确的说是发布项目构件到JCenter仓库,用英语说是Publishing artifacts to the JCenter。本文所说的发布项目都是指发布项目构建后的生成物,即构件(Artifacts)。

简介。JCenter是JFrog公司旗下Bintray平台上一个公开的Java仓库。要发布项目到JCenter,首先需要发布项目到Bintray平台,然后才能发布到它的公开库——JCenter。

Bintray平台上可以托管多种类型的库,如比较流行的Maven和npm。

本文写作目的。本文目的是介绍如何上传Android Library项目构件到Bintray Maven库,并最终发布到JCenter这一整个流程。其实关于发布项目到JCenter这方面的介绍,网上已经有许多文章了,官网也有用户指南,那为什么我还有写这篇文章呢?

源码地址。本文涉及到的nicelogger项目Github地址:https://github.com/zhangliangnbu/nice-logger


Maven相关

详细介绍请见Apach Maven。简单讲,Maven就是项目构建和管理的工具,Maven仓库就是利用Maven来管理项目的仓库。

Maven仓库文件规范

上传文件到Maven仓库有一定的规范。

对于Android项目,必须上传的文件包括:

有些Maven仓库审核比较严格,需要上传另外的两个文件:

POM文件

有四个必填的参数,以著名的OkHttp项目作为示例进行说明如下:

  1. modelVersionPOM版本,一般都写4.0.0,支持Maven 2和3。
  2. groupId。项目所在的项目组标识,如OkHttp所在的项目组标识是com.squareup.okhttp3
  3. artifactId。项目的标识,如okhttp
  4. version。项目当前版本号,如OkHttp项目的3.12.0

另外还有一个参数packaging,对于Android项目来一般不能缺少,它表示打包方式,默认是jar,Android项目一般为aar

我们用Gradle解析依赖的时候,会这样写:implementation 'com.squareup.okhttp3:okhttp:3.12.0',其中com.squareup.okhttp3就是当前依赖的groupIdokhttp是依赖的artifactId,3.12.0是当前要解析的版本version

注意:groupIdartifactIdversion都是非常重要的参数,在上传文件之前必须先定义好,在之后的过程中会用到。

Android项目基本POM文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>3.12.0</version>
  <packaging>aar</packaging>
</project>

文件名统一

发布到JCenter里的四个文件名称必须统一如下:


用户手册

JFrog用户指南。里面详细介绍各种概念、使用、操作等。浏览一遍即可,有许多是用不上的。主要章节如下:

任何个人博客和文章都不能代替官方用户手册,这是必须要读的,它应当是一切非官方文档的参考。


发布流程

一般发布流程如下:

  1. 准备工作。定义参数;准备本地待发布项目;配置Bintray平台账号、仓库、Package、版本。
  2. 生成构件文件。本地生成待发布的构件文件(包括POM文件)。
  3. 发布到Bintray。上传和发布本地构件文件到Bintray平台。
  4. 发布到JCenter。发布Bintray平台上的项目到JCenter。

发布方式

发布项目到JCenter有许多方式:

  1. UI手动上传。通过Bintray网站UI,手动上传项目构件文件。
  2. cURL上传。通过cURL调用REST API接口上传。
  3. Maven上传。使用Maven客户端上传项目构件文件到Bintray平台的maven仓库。
  4. Gradle插件上传。通gradle-bintray-pluginbintray-release等Gradle插件上传。

不同的方式会导致发布流程略微有所不同,有些操作可以合并在一起。比如Gradle插件上传方式中,创建pacakge、版本、创建构件文件和上传操作可以一起执行。


准备工作说明

主要描述定义参数、准备本地项目和配置Bintray平台这三步操作。

定义参数

注意:Bintray平台Package名称和POM文件artifactId不必取相同的名称,可以不一致。为了方便说明和记忆,我取为一致。

准备项目

可以创建一个然后发布到GitHub或者从GitHub fork一个。为了描述方便工程名称为NiceLoggerDemo, Library Module名称为nicelogger

项目的GitHub地址在之后的配置中,需要用到。

配置Bintray平台

准备工作做好后,接下来就可以通过不同的方式进行后续操作了。


参考

  1. JCenter是什么
  2. Bintray官网
  3. JCenter仓库
  4. JFrog用户指南
  5. Apach Maven
  6. bintray-release
  7. 使用Gradle插件上传Artifacts到Bintrary
  8. 使用Gradle插件上传示例
  9. 博客-上传Gradle项目到Maven仓库
  10. 从Travis到Bintray

注:文章首发简书和我的个人博客永恒的码流
个人博客会持续更新,但由于精力有限,其他平台不能保证会更新。为了读到最新版本的文章,建议读我的个人博客。


上一篇 下一篇

猜你喜欢

热点阅读