kafka源碼編譯
kakfa項目編譯:
cd
/home/zhaofuxin/workspace/kafka-0.8.2.1-src ./gradlew releaseTarGz
會出現如下異常: zhaofuxin@ubuntu-machine:~/workspace/kafka-0.8.2.1-src$ ./gradlew releaseTarGz Downloading https://services.gradle.org/distributions/gradle-2.0-bin.zip Exception in thread "main" javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) at org.gradle.wrapper.Download.downloadInternal(Download.java:58) at org.gradle.wrapper.Download.download(Download.java:44) at org.gradle.wrapper.Install$1.call(Install.java:61) at org.gradle.wrapper.Install$1.call(Install.java:48) at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) Caused by: java.io.EOFException: SSL peer shut down incorrectly at sun.security.ssl.InputRecord.read(InputRecord.java:482) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:927) ... 15 more |
在 Downloading https://services.gradle.org/distributions/gradle-2.0-bin.zip 過程中會出現如上異常
https://services.gradle.org/distributions/gradle-2.0-bin.zip 的URL位址配置在/home/zhaofuxin/workspace/kafka-0.8.2.1-src/gradle/wrapper/gradle-wrapper.properties檔案中。
是網絡原因,多試幾次後,就可以正常下
載了,有一個疑問,gradle已經安裝了,為什麼還會下載下傳gradle-2.0-bin.zip檔案,這個檔案是什麼用,下載下傳到那個位置了?
從日志可以看出下載下傳的位置是:/home/zhaofuxin/.gradle/wrapper/dists/gradle-2.0-bin

Unzipping /home/zhaofuxin/.gradle/wrapper/dists/gradle-2.0-bin/ahl4kci1szqczjl9kz6r1x20w/gradle-2.0-bin.zip to /home/zhaofuxin/.gradle/wrapper/dists/gradle-2.0-bin/ahl4kci1szqczjl9kz6r1x20w
Set executable permissions for: /home/zhaofuxin/.gradle/wrapper/dists/gradle-2.0-bin/ahl4kci1szqczjl9kz6r1x20w/gradle-2.0/bin/gradle
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/docs/2.0/userguide/gradle_daemon.html.
Building project 'core' with Scala version 2.10.4
cd /home/zhaofuxin/.gradle/wrapper/dists/gradle-2.0-bin/
發現下面有 gradle-2.0-bin.zip.lck 和gradle-2.0-bin.zip.ok 兩個空的标示檔案,是以當網絡下載下傳較慢是,可以把檔案直接放到這個目錄下,減少下載下傳的耗時。
相關檔案可以到我的共享位址下載下傳:
http://pan.baidu.com/s/1qXatJLq
當出現如下标示時編譯成功:
編譯成功後, 在core/build/distributions/裡面生成kafka_2.10-0.8.2.1.tgz檔案,這個和從網上下載下傳的一樣,可以直接用。
./gradlew releaseTarGzAll -x signArchives
這時候将會編譯成功(在編譯的過程中将會出現很多的)。在編譯的過程中,我們也可以指定對應的Scala版本進行編譯:
./gradlew -PscalaVersion=2.10.3 releaseTarGz -x signArchives
=========================
kafka源碼的編譯:
gradle jar_core_2_10_4 --stacktrace
#使用gradle建構kafka項目
gradle build -x test
其中的-x test表示跳過unit test
======================================
重複下載下傳安裝包的原因是gradle的特性引起:這是好心辦了壞事。
難道你不讨厭給不同的項目安裝新的運作時環境?Gradle包裝器是救星! 它允許你在任何需要允許建構的機器上從一個指定的倉庫下載下傳和安裝一個Gradle允許時的新拷貝。 這個過程是在第一次建構執行時自動觸發的。包裝器對于一個給一個釋出團隊分享你的建構或者 在持續內建伺服器上運作建構是非常有用的。 |
解決的方法:應該是修改包裝器的參數。
作者:
丹江湖畔養蜂子的趙大爹
出處:http://www.cnblogs.com/honeybee/
關于作者:丹江湖畔養蜂子的趙大爹
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結