pentaho專題系列之kettle篇--kettle源碼編譯


    最近看了一些kettle的文章,都是kettle7.0以前的,已經跟不上時代了。截止筆者寫這篇文章的時候,github上面的已經是7.1.0.3了,而且是發行版的,最新的快照版本已經是8.0的了。基於此,有必要寫一篇關於7.1之后的版本的kettle說明了。

    特別說明,我用的項目的構建工具是maven,而不是ant了,如果想用ant的童鞋可以用一下maven的插件maven-antrun-plugins,還是比較好用的。

  好了,開始吧! 

    第一步:下載源碼。

    源碼地址在github上面:https://github.com/pentaho/pentaho-kettle.git,看到這里我用的是https的協議,如果要用ssh的協議的話,需要將你的公鑰上傳到github上面。不過不影響我們下載源碼。

    git的命令如下:git clone https://github.com/pentaho/pentaho-kettle.git。

    完成之后,我們用一下maven的build命令唄(到項目的根目錄下面):mvn clean install.  這下會報告一個父pom.xml找不到的錯誤,為什么會找不到呢?因為地址不對唄,我們把父項目里面的<parent></parent>這個節點給注釋掉,就ok了。我猜想是他們團隊對maven不是太了解,或者是運行的環境不同吧,但是在這里,明確告訴童鞋們,這個<parent></parent>確實有問題,不需要啦!

    接着再來一次mvn clean install.又報錯了,說是maven倉庫找不到jar包,這里我們的解決方案如下:在父pom.xml中加入節點

  

<repositories>
<repository>
<id>pentaho-releases</id>
<url>http://repository.pentaho.org/artifactory/repo/</url>
</repository>
<repository>
<id>pentaho-nexus</id>
<url>https://nexus.pentaho.org/content/groups/omni/</url>
</repository>
</repositories>

這個節點指向了他們自己的jar包倉庫,這兩個都可以用,是一樣的,建議都加上,以免遇到維護的時候,我們下不了jar包。

接着我們第三次mvn clean install!又來一個錯誤,是編譯的版本過低,適應不了目前的代碼需求,這個好解決啊。這個我們可以人為的提高一下編譯的版本,在父pom.xml中加入以下代碼:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

這個節點是以插件的形式將編譯的版本提高到jdk1.8.

下面再來編譯唄,第四次mvn clean install。這下可以了,可以看到jar在一個一個下載了。可能時間比較慢,是個人的網速而定!一般要3個小時以上(這是最快的了,因為它會下載很多zip文件下來之后解壓)。

編譯好了之后,我們在assemblies/pdi-ce/target/下面有一個zip文件包,解壓之后會得到一個分發包。雙擊Spoon.bat就可以了!

以上就是kettle源碼編譯的過程了。之所以沒有截圖給大家,是因為我已經成功了,不想再來一遍了。如果各位童鞋有什么問題,可以在下面留言,只要是我知道的,我會解答的!

還要強調一點的是,不要單獨建立lib目錄,脫離maven的環境,這樣的項目說白了就是不嚴謹,沒有規范,不適合我們新世紀的高科技碼農人才!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM