天天看點

RxJava入門指南

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協作的第三方庫:

使用指南

你可以在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 [email protected]: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:build

BUILD SUCCESSFUL

Total 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。