RxJava是 ReactiveX 在JVM上的一个实现,ReactiveX使用Observable序列组合异步和基于事件的程序。更多关于ReactiveX的资料,可以查看 ReactiveX 介绍 页面。

RxJava介绍

RxJava 是轻量级的

RxJava尽力做到非常轻巧。它仅关注Observable的抽象和与之相关的高层函数,实现为一个单独的JAR文件。

RxJava 是一个多语言实现

RxJava 支持Java 6或者更新的版本,以及其它的JVM语言如 Groovy, Clojure, JRuby, Kotlin 和 Scala。RxJava 可用于更多的语言环境,而不仅仅是Java和Scala,而且它致力于尊重每一种JVM语言的习惯。

RxJava 第三方库

下面是可与RxJava协作的第三方库:

  • Hystrix - 用于分布式系统的一个延时和容错处理框架
  • Camel RX - 一个用于Apache Camel 的 RxJava 兼容层
  • rxjava-http-tail - 让你可以跟踪HTTP日志,就像使用 tail -f 一样
  • mod-rxvertx - Extension for VertX - 使用 RxJava 封装的VertX库
  • rxjava-jdbc - 使用RxJava流式处理JDBC连接,还支持语句的函数式组合
  • rtree - 使用RxJava实现的一个纯内存的可变的R-tree和R*-tree

使用指南

你可以在Maven Central http://search.maven.org 找到用于Maven, Ivy, Gradle, SBT和其它构建工具需要的二进制文件和依赖信息.

Maven示例:

<dependency><groupId>io.reactivex</groupId><artifactId>rxjava</artifactId><version>1.0.10</version>
</dependency>

Ivy示例:

<dependency org="io.reactivex" name="rxjava" rev="1.0.10" />

SBT示例:

libraryDependencies += "com.netflix.rxjava" % "rxjava-scala" % "1.0.10"

Gradle示例:

compile 'io.reactivex:rxjava:1.0.10'

如果你没有使用构建系统,想直接下载JAR文件的话可以在这里找到:

https://repo1.maven.org/maven2/io/reactivex/

编译构建

检出和构建RxJava的源码,使用以下命令:

$ git clone git@github.com:ReactiveX/RxJava.git
$ cd RxJava/
$ ./gradlew build

要执行一个完整的构建,使用这个命令:

$ ./gradlew clean build

构建命令的输出大概是这样的:

$ ./gradlew build
:rxjava:compileJava
:rxjava:processResources UP-TO-DATE
:rxjava:classes
:rxjava:jar
:rxjava:sourcesJar
:rxjava:signArchives SKIPPED
:rxjava:assemble
:rxjava:licenseMain UP-TO-DATE
:rxjava:licenseTest UP-TO-DATE
:rxjava:compileTestJava
:rxjava:processTestResources UP-TO-DATE
:rxjava:testClasses
:rxjava:test
:rxjava:check
:rxjava:buildBUILD SUCCESSFULTotal time: 30.758 secs

执行完整的构建的话,你会看到单元测试的执行,输出类似于这样:

> Building > :rxjava:test > 91 tests completed

故障排除

有一位开发者上报了下面这个错误:

Could not resolve all dependencies for configuration ‘:language-adaptors:rxjava-scala:provided’

他在从.gradle/caches.m2/repository/org/scala-lang/移除了旧版本的 scala-library之后解决了这个问题,然后执行了一次完整构建。(查看详细信息)

在构建RxJava时你可能会遇到下面的错误:

Failed to apply plugin [id ‘java’]
Could not generate a proxy class for class nebula.core.NamedContainerProperOrder.

这是JVM的问题,详细信息可以参考 GROOVY-6951 。如果遇到这个问题,可以在构建RxJava之前执行 export GRADLE_OPTS=-noverify,或者升级你机器上的JDK。

RxJava入门指南相关推荐

  1. [译]函数式响应编程入门指南

    原文地址:An Introduction to Functional Reactive Programming 原文作者:Daniel Lew 译文出自:掘金翻译计划 本文永久链接:github.co ...

  2. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  3. Maven入门指南⑦:Maven的生命周期和插件

    Maven入门指南⑦:Maven的生命周期和插件 一个完整的项目构建过程通常包括清理.编译.测试.打包.集成测试.验证.部署等步骤,Maven从中抽取了一套完善的.易扩展的生命周期.Maven的生命周 ...

  4. UE4风格化场景设计入门指南 Stylized Station – The Environment Artist’s Survival Kit

    持续时间13h 1920X1080 .ts 包含项目文件 大小解压后:4.9G 语言:英语+中文字幕(人工校对) 标题:风格化的车站--环境艺术家的生存工具包 信息: 环境艺术很难. 尤其是作为初学者 ...

  5. 游戏风格化角色创建入门指南视频教程

    游戏风格化角色创建入门指南视频教程 时间 33小时 包括项目文件 1920X1080 MP4 语言:英语+中文字幕(根据原英文字幕机译更准确)+原英文字幕 游戏中的风格化角色创建入门指南  百度一下 ...

  6. mongoDB 入门指南、示例

    http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html mongoDB 入门指南.示例 上一篇:简单介绍mongoDB 一.准备工作 ...

  7. 智能合约和区块链技术:入门指南

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约和区块链技术:入门指南 多年前,在没有数字合约和区块链技术存在的情况下,双方的合约往往以传统的方式进行.在加密货 ...

  8. 数据分析从头学_数据新闻学入门指南:让我们从头开始构建故事

    数据分析从头学 by Mina Demian 由Mina Demian 数据新闻学入门指南:让我们从头开始构建故事 (A Beginner's Guide to Data Journalism: Le ...

  9. 《Redis入门指南(第2版)》一第2章 准备

    本节书摘来异步社区<Redis入门指南(第2版)>一书中的第2章,作者: 李子骅 责编: 杨海玲,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第2章 准备 R ...

最新文章

  1. 雅虎对提升网站性能的最佳实践(英文)
  2. linux 文件系统的管理 (硬盘)
  3. java 作业 老师与教员信息 类与对象
  4. chmod 更改权限
  5. python 输入列表 返回每个元素出现的次数
  6. matlab设计理想高斯巴特沃斯低通滤波器_完整二阶有源带通滤波器设计!(下载:教程+原理图+视频+代码)...
  7. 2015出现的25项最佳发明
  8. 使用containerd管理容器【同docker】【或称之为docker替代品】
  9. latex插图编号_LaTex技巧[26]:Latex重新为图片编号
  10. 服务器正文15:Assert的使用技巧
  11. 锂离子电池热失控的机理
  12. acwing.回文质数
  13. 服务重启后 云硬盘,无法使用
  14. html5 打字机效果,使用JavaScript制作打字机文本效果
  15. 「数据结构」普林斯顿算法课第二周作业
  16. 用WLW离线写cnblogs博文
  17. 优化算法—人工蜂群算法(ABC)
  18. 公职人员财产公开_知道您的财产:Web设计人员/开发人员的薪资指南[比较]
  19. 李文胜oracle,2014年下期解放学校防火演练方案.doc
  20. 服务器配置公网ftp服务端(软件和python代码两种方法)

热门文章

  1. CC2640R2F之新手必看心得篇
  2. portraiture2023手动磨皮的p图插件
  3. 3-7 慕课和掘金小册的学习
  4. EPS在倾斜摄影“房地一体”项目中的应用及操作简介
  5. CCS使用教程06:在线仿真操作
  6. Android编译系统apk并进行系统签名安装
  7. 工时、工期、执行时间计算方式
  8. 【错误记录】Visual Studio 2019 中运行 Unity C# 脚本时报错 ( 根据解决方案, 可能需要安装额外的组件才能获得 | .NET 桌面开发 | 使用 Unity 的游戏开发 )
  9. c语言压缩文本文件北京理工大学,北京理工大学C语言程序设计第十二章文件.ppt...
  10. Android实习周记:第二周,(IT==不停的学习) is TRUE