RxJava是 ReactiveX 在JVM上的一個實現(xiàn),ReactiveX使用Observable序列組合異步和基于事件的程序。更多關(guān)于ReactiveX的資料,可以查看 ReactiveX 介紹 頁面。
RxJava盡力做到非常輕巧。它僅關(guān)注Observable的抽象和與之相關(guān)的高層函數(shù),實現(xiàn)為一個單獨的JAR文件。
RxJava 支持Java 6或者更新的版本,以及其它的JVM語言如 Groovy, Clojure, JRuby, Kotlin 和 Scala。RxJava 可用于更多的語言環(huán)境,而不僅僅是Java和Scala,而且它致力于尊重每一種JVM語言的習(xí)慣。
下面是可與RxJava協(xié)作的第三方庫:
tail -f
一樣你可以在Maven Central http://search.maven.org 找到用于Maven, Ivy, Gradle, SBT和其它構(gòu)建工具需要的二進(jìn)制文件和依賴信息.
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'
如果你沒有使用構(gòu)建系統(tǒng),想直接下載JAR文件的話可以在這里找到:
https://repo1.maven.org/maven2/io/reactivex/
檢出和構(gòu)建RxJava的源碼,使用以下命令:
$ git clone git@github.com:ReactiveX/RxJava.git
$ cd RxJava/
$ ./gradlew build
要執(zhí)行一個完整的構(gòu)建,使用這個命令:
$ ./gradlew clean build
構(gòu)建命令的輸出大概是這樣的:
$ ./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
執(zhí)行完整的構(gòu)建的話,你會看到單元測試的執(zhí)行,輸出類似于這樣:
> Building > :rxjava:test > 91 tests completed
有一位開發(fā)者上報了下面這個錯誤:
Could not resolve all dependencies for configuration ':language-adaptors:rxjava-scala:provided'
他在從.gradle/caches
和.m2/repository/org/scala-lang/
移除了舊版本的 scala-library
之后解決了這個問題,然后執(zhí)行了一次完整構(gòu)建。(查看詳細(xì)信息)
在構(gòu)建RxJava時你可能會遇到下面的錯誤:
Failed to apply plugin [id 'java'] Could not generate a proxy class for class nebula.core.NamedContainerProperOrder.
這是JVM的問題,詳細(xì)信息可以參考 GROOVY-6951 。如果遇到這個問題,可以在構(gòu)建RxJava之前執(zhí)行 export GRADLE_OPTS=-noverify
,或者升級你機(jī)器上的JDK。