mavener試用gradle
老話,適合的才是最好的。
此處不做gradle和maven的比較。只說下我,一個偏執的maven用戶如何嘗試使用gradle的經驗。
我用maven好些年了,自己機器上還搭了個nexus。
最近看到有個demo需要gradle才能跑起來,于是打算嘗試下。
首先gradle的下載、配置,對一個程序猿來說,這都不是事,如果這都搞不定,可能你有點點不太適合做這一行。
Win7下,直接用setx設置環境變量。
先設置gradle的安裝目錄或者說是解壓縮出來的目錄,這個目錄下至少應該保留有bin、lib,其他文件或者目錄偏執狂可以盡情刪掉。
setx GRADLE_HOME "E:\gradle"
再把gradle的可執行文件路徑加入到Path變量里。為什么要加?因為想不帶路徑的執行一個命令(exe、bat、cmd之類),就需要在命令搜索路徑列表中把這個命令所在的路徑加進去。
setx Path ".;%%GRADLE_HOME%%\bin;"
gradle和maven一樣,都是要把jar包下到本地緩存起來的。
gradle可以復用maven的私有倉庫和中央倉庫。中央倉庫什么的先不管,偏執狂大多關心的是gradle如何先復用maven已經下好的jar包,那些沒有的jar包再下到gradle的緩存目錄。
gradle官網和度娘給出的一些教程上,都說
repositories { mavenLocal() }
命令行切到demo目錄,執行gradle jettyRun試了試,C盤用戶目錄刷刷的下東西。
原因是gradle默認是下載C盤用戶目錄的。
度娘是不會告訴你如何設置一個長期的緩存目錄的。谷哥知道,但是需要懂科學。
谷哥給了多種設置方法:系統環境變量、jvm環境變量、gradle命令行參數等等。我選擇比較簡單也相對長期的系統環境變量設置方式。
把gradle緩存目錄指向了gradle安裝目錄下的.gradle目錄
setx GRADLE_USER_HOME %GRADLE_HOME%\.gradle
設置完成后,刪了C盤用戶目錄gradle下的東西。重新啟動gradle jettyRun。這回沒往C盤用戶目錄寫了,寫在了%GRADLE_HOME%\.gradle 這個目錄里。mavenLocal()拼寫沒錯啊,build.gradle也沒錯啊,但是以往maven下過的jar包還是在重復下,果斷ctrl+c。
度娘問了半天是沒結果的,從谷哥給的建議找到官網,上面介紹了復用maven本地倉庫的搜索路徑,主要是通過maven的settings.xml。
maven配置用的默認的那些朋友,自然不會碰到我這樣的問題。因為可以直接在C盤用戶目錄找到這個settings.xml。
如果設置了M2_HOME的那些朋友,自然也不會碰到我這樣的問題。因為可以直接在M2_HOME下的conf目錄找到這個settings.xml。
像我這樣只配了maven可執行路徑到Path環境變量的朋友,自然會碰到我這樣的問題。解決方法很easy,把M2_HOME這個環境變量加上,值就是maven的安裝目錄。
setx M2_HOME %MAVEN_HOME%
設置完成后,刪了%GRADLE_HOME%\.gradle 這個目錄的東西。重新啟動gradle jettyRun。愉快的看著demo順利啟動了,沒有重復下jar包,都利用的maven本地倉庫已有的包。
送給愛折騰想嘗試gradle的mavener。
題外話,eclipse的maven插件最近幾個版本好像是已經集成了。起碼kepler和luna都有的。gradle的插件要從springsource的插件庫去裝。蛋疼的CMCC網速下了好幾次到一半都timeout了,幸好照貓畫虎借了點科學姿勢,配了代理順利安裝好了。gradle的插件里面的配置,建議手工寫成gradle安裝目錄的地址。用默認配置的話,會自己下個gradle并且把緩存下到C盤。
很多時候需要找jar包的依賴樹,maven的插件很直觀的看到,gradle插件就比較頭疼了,鐵定是我不會用。想來想去,雖然gradle比較簡潔、強大(執行自定義任務方面),最后還是覺得maven比較適合我,對我來說maven這個工具也算是最好的了。