Skip to content

Instantly share code, notes, and snippets.

@qrtt1
Created October 21, 2013 08:24
Show Gist options
  • Save qrtt1/7080398 to your computer and use it in GitHub Desktop.
Save qrtt1/7080398 to your computer and use it in GitHub Desktop.

重包 zookeeper

由於 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 編譯,配合文件上提到的,需裝下列編譯工具:

  1. jdk
  2. ant
  3. cppunit
  4. python-setuptools

不過,這台 vm 還沒有在上面編譯過東西,只有基本的 gcc 有安裝,過程式發現還缺:

  1. autoconf
  2. 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'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment