今天,是在簡書上第一次寫文章,紀念一下.(前面一堆廢話,方法直接托下面,看粗體的字)
主要是感覺能把自己的所思所想,以及遇到的事情用文字記錄下來,越來越重要.所以開始動手寫吧.
作為一個前端,最近在被一個問題搞得莫名其妙,領(lǐng)導(dǎo)讓我把項目里面的依賴的 hadoop的 jar 包合并成為一個 jar包.在心里默默罵了幾遍:"我一個搞前端的,讓我去弄 jdbc 依賴的 jar,還讓我挑出來,合成 一個 jar,是不是有病?"之后,還是默默的開始查資料和著手做...
第一步:將 java代碼導(dǎo)入到 eclipse(又想吐槽,我一個前端,默默地研究了一天怎么導(dǎo),怎么用,但其實現(xiàn)在還是不明白....),不管怎么樣,根據(jù) pom 文件生成了所有的 jar.
第二步:找這些 jar, 哪些是 hadoop 依賴的 jar...這個過程很奔潰,一方面因為原來寫 java代碼的小哥估計也是亂弄,有好多不知道是什么東西的 jar 包都在里面;第二方面,項目中的 jdbc 功能測試不了這些 jar 包(所寫的功能無法滿足我的目的)..實在沒招,不知道怎么辦了...然后美國領(lǐng)導(dǎo)說你找個第三方 APP,然后給我推薦了 DBVisual.之后開始了一上午的研究這APP怎么用( 全英文的陌生東西剛開始總是很抵觸)..但是研究之后,這個 APP 還是蠻強大的,可以測試很多數(shù)據(jù)庫的連接(vertica,teradata 什么的,原來都沒聽過,是因為這個公司是搞大數(shù)據(jù)的,所以聽到了許多數(shù)據(jù)庫名字..).開始連接測試..依照原來美國小哥寫的 java 代碼導(dǎo)出來的 jar 包不好使....抓狂,奔潰,又默默罵一遍,"讓我一個搞前端的女紙,搞這,是不是有病!"....無奈,活分我頭上了...繼續(xù)想把辦法...
第三步:求人..哎,沒辦法只能走一步...讓北京這邊的寫 java 代碼的,重新給了我一份 hive數(shù)據(jù)庫的 jar 包,先讓他幫忙在 java 環(huán)境下, 用 eclipse 測試了一下,好使. OK, 要過來,在我 dbVisual里面測了一下,好使! OK, 有點開心了??哈哈哈.之后進行關(guān)鍵的一步 合并 jar 包.
第四步:其實測完 jar 包好使之后,心想, 搞 java 的應(yīng)該可以很快可以將多個 jar 包合并成一個,于是,不好意思的和 java 小哥說進一步的需求:是不是eclipse 里面可以合并?小哥一臉傲氣的說:必須.我接著說,那你幫我合一下唄.小哥說好!(心中高興啊,我這邊頭疼的任務(wù)讓小哥幫整了,不好意思但又松一口氣..)等啊等,好了,合并之后的 jar 傳到了我手里(那個開心啊,試試..)But!!重點來了!!不!好!使...厚著臉皮和小哥說你給的東西不能用...小哥:不能啊,我查查,,,于是乎, google....不能啊,網(wǎng)上說的步驟和我的操作一致啊..."眼看了他看了3.4遍,還是同樣的操作,感覺在他身上找到正確 jar 的可能性沒了..感謝小哥后,回去自己搞..
第五步:判斷所有的 jar 沒問題,那就是合并出了問題了..我不會用 eclipse 合并(其實我也不知道能不能..),只能自己想辦法了.搜啊搜.看到可以用命令行!!看到希望,開始試驗..就是這個鏈接http://blog.csdn.net/totcw/article/details/72723627
第六步:其實那個鏈接已經(jīng)可以滿足了,但還是想自己寫寫,有點成就感.嘿嘿.
1.提取jar包?
為了將多個jar包打包成一個jar包,首先要將每個jar包的內(nèi)容提取出來放到一個文件夾下,具體的操作命令就是使用jar xf jar的文件名
222(是我隨便起的文件夾名字,里面放著所有的 jar,并且直接在這個文件下執(zhí)行這個命令就可以)
2.將提取之后的 jar 包刪掉,(可以 copy 到另一個文件夾,留著以后有用),之后的重新打包不刪掉會有影響.
3.打包成一個 jar : 命令 --->??jar -cvfM? XXX.jar .? ? ? ? ?如:?jar -cvfM hadoop.jar .
?
之后在222文件夾下面就會看到打包出來的一個新 jar 包: hadoop.jar
over.這就是我從接到任務(wù)到現(xiàn)在的全部.