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/
关于作者:丹江湖畔养蜂子的赵大爹
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接