由於 zookeeper 3.4.5 跟 weblogic 處不太來,看 ZOOKEEPER-1696 上說了它已經修正。沒多想就直接在 gradle 上改了版本,發現他們還沒有正式 release 出來。這種看得到吃不到的情況,只能說...。 zookeeper 目前官方的版本控制系統是 SVN,依『慣例』已經 release 的能在 tags/ 目錄下找到,決定好版本後,我們取出 3.4.5
svn co http://svn.apache.org/repos/asf/zookeeper/tags/release-3.4.5/
總是要解決它的,好在 issue 上有附修正的 patch,開了一台 debian vm 來編它。由於它是 java 專案,並使用 ant 編譯,配合文件上提到的,需裝下列編譯工具:
- jdk
- ant
- cppunit
- python-setuptools
不過,這台 vm 還沒有在上面編譯過東西,只有基本的 gcc 有安裝,過程式發現還缺:
- autoconf
- libtool
有了上述的東西,大致就能產生出 dist:
ant tar
產生出來後的另一個問題,得把編譯完成的 JAR 放到自家的 Maven Repository Server 內,在 ant tar 會順便產生要發佈至 Central Maven Repository 的檔案:
release-3.4.5/build/zookeeper-3.4.5/dist-maven
需要注意是,在官方版本的 3.4.5 已經有一份在我們的 Server 上了,需要修改 zookeeper-3.4.5.pom 換一個版本,或是連 groupId 都換掉(畢竟這不是 zookeeper 官方打包的)。
原先的 pom 有這段的內容,將它改成不同的 groupId 與 version:
<modelVersion>4.0.0</modelVersion>
<groupId>my.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<packaging>pom</packaging>
<version>3.4.5.1</version>
利用 mvn 指令將 JAR 與 source JAR 發佈至自己的 Maven Repository Server:
mvn deploy:deploy-file -DpomFile=zookeeper-3.4.5.pom \
-Dfile=zookeeper-3.4.5.jar \
-DrepositoryId=our_server \
-Dsources=zookeeper-3.4.5-sources.jar \
-Durl=http://our_nexus_repo/nexus/content/repositories/releases
完成發佈後,就能在 Maven 或 Gradle 內使用,以 Gradle 為例:
compile 'my.zookeeper:zookeeper:3.4.5.1'