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協作的第三方庫:
- 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: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。
相關文章
- RxJava 入門RxJava
- Android RxJava:這是一份RxJava使用入門學習指南AndroidRxJava
- RxJava快速入門RxJava
- RxJava 的使用入門RxJava
- RxJava 從入門到全解析RxJava
- RxJava簡介與入門(一)RxJava
- RxJava2輕鬆入門RxJava
- RxJava 入門和常見使用方式RxJava
- Zookeeper入門指南
- CPack 入門指南
- Docker 入門指南Docker
- numpy入門指南
- EOS 入門指南
- Vue 入門指南Vue
- RabbitMQ入門指南MQ
- Nginx入門指南Nginx
- Vagrant 入門指南
- React 入門指南React
- Flask 入門指南Flask
- gulp入門指南
- OSWorkFlow入門指南
- CouchDB 入門指南
- ODA入門指南
- MySQL 入門指南MySql
- Markdown入門指南
- RxJava 2.x入門新姿勢一RxJava
- 響應式程式設計入門(RxJava)程式設計RxJava
- Rxjava2操作符入門(一)RxJava
- KNIME快速入門指南
- Markdown快速入門指南
- CodeMirror入門指南
- GitHub Actions 入門指南Github
- RequireJS入門指南UIJS
- Vuex新手入門指南Vue
- Airflow使用入門指南AI
- 自學機器學習入門指南機器學習
- Maven入門指南(一)Maven
- Bash快速入門指南