從一個多項目Web工程看Eclipse如何導入Gradle項目


這里再次說一下為什么我們需要熟悉Gradle構建工具,主要原因就是很多開源項目現在都在改用Gradle作為構建工具。一部分的github上的示例代碼也在用Gradle構建,如果還是只能用maven,那么很多好的項目都只能用肉眼看,不能真正的調試起來,更精細的去看運行時的狀態,對於理解代碼的思想還是有不小障礙的。

比如說,我要看spring源代碼,結果我都不能放到我的eclipse里面,要知道函數之間的調用關系都十分困難。再比如說,我要了解spring-data-redis的用戶,官網上就說了個支離破碎的大概,然后給了我一個github的項目地址,讓我自己去看,可是下載下來之后,瞎了,人家用的是gradle,我都不知道怎么搞到我熟悉的eclipse里面,豈不是很心碎。

好了,這一節,我們將要把gradle提供的示例web項目放到eclipse里面,然后還能夠像我們往常tomcat調試一樣的去調試代碼。

Gradle插件2號

由於換了新電腦,這次裝的時候用了另外一個gradle的eclipse插件,Gradle Integration for Eclipse.

這個插件可以直接在“Eclipse”–>“Help”–>“Eclipse Marketplace”里面搜索Gradle,第一個就是。buildship也在里面可以找到。

這里寫圖片描述

為什么,第一節我們介紹的是buildship而不是這個插件,因為buildship是eclipse官方提供的,而且提供了任務列表欄,要運行那個task直接選就可以了,今天的這個家伙選起來相對就比較麻煩了(接下來,就會看到)。

安裝插件

在搜索結果中,點install按鈕,安裝就可以了,具體的安裝過程,這里就不說了。

安裝完之后,我們的eclipse里面就多了gradle這么個選項。

這里寫圖片描述

用git下載gradle示例項目

接下來我們要把git上的這個項目下載到本地來。如果你對eclipse git很熟悉,可以跳過這里。

在瀏覽器打開項目地址:https://github.com/rominirani/GradleWebAppSample

這里寫圖片描述

點箭頭指向的按鈕,復制資源庫鏈接地址。

回到eclipse,在“Window”–>”Show View”–>”Others”–>”Git”選擇里面的“Git Respositroies”.

這里寫圖片描述

點擊圖中箭頭指向的圖標(復制git資源庫)。在對話框里面的URI一欄,粘貼上邊在瀏覽器中復制的資源庫鏈接地址。除了用戶名密碼之外的內容會自動填充,用戶名是你在github網站上注冊的用戶名。 
這里寫圖片描述

點擊Next,選擇要下載到本地的分支。 
這里寫圖片描述

點Next,選擇本地保存的地址,和初始化分支。(我這里是因為已經下載過,所以顯示本地目錄不為空) 
這里寫圖片描述

點擊完成,就可以看到下載過程,下載完成之后,可以在Git Repositroies欄里看到資源庫了。Work Directroy就是項目在你本機存放的位置。 
這里寫圖片描述

導入項目到eclipse

在Project Explorer里面空白處右鍵點擊,選擇Import看到里面的Gradle Project沒有,哈哈。。。 
這里寫圖片描述
下一步,分別選擇Browse選中本地目錄,和BuildModel創建相關的項目文件。 
這里寫圖片描述

如果你在Build Model過程中,一直卡在下載gradle-bin.zip的地方,那么你可以翻回到第一節,參照第一節的方式安裝gradle到本地。

以下是build model之后的結果 
這里寫圖片描述

選中項目后,點擊finish即可。GradleWebAppSample、utils、web三個項目。 
這里寫圖片描述

編譯生成war文件

這里GradleWebAppSample是主項目,其中包含了utils和web兩個子項目。

在GradleWebAppSample項目上右鍵,選擇run as …–>gradle build…打開gradle任務執行選擇.輸入assemble,這里輸入a后會有自動提示。點擊run即可。 
這里寫圖片描述

看到執行順序了吧,gradle會按着依賴順序逐個打包子項目 
這里寫圖片描述

打包后的war包在哪了呢??我們分別進入到utils和web項目的build/libs目錄下,這里分別有一個utils.jar和一個web.war,你也可以解壓開web.war看一下,utils.jar已經在WEB-INF/lib中了。 
這里寫圖片描述

怎么直接在eclipse里面調試

像普通的web項目一樣,我們在server欄里面的Tomcat上右鍵,選擇Add and Remove…

怎么了?沒有我們的項目,居然沒有我們的項目,這調試個mao。。。 
這里寫圖片描述

這里首先要用一下gradle提供的eclipse-wtp插件,我們在web項目的build.gradle文件里面添加上對這個插件的引用。 
這里寫圖片描述

繼續…在web項目上右鍵,選擇Gradle–>Refresh All.看我們的web項目多了什么??部署描述符!!!! 
這里寫圖片描述 
然后在server欄再Add and Remove…一下,等待已久的web項目終於出現了!!! 
這里寫圖片描述

運行web項目

我們把web項目加入到tomcat服務后,啟動tomcat。 
沒有錯誤,成功啟動。 
這里寫圖片描述

快在瀏覽器里面訪問一下接口試試…. 
這里寫圖片描述

DateUtils is invalid,這個類是utils項目里面的,怎么無效了呢,趕緊看一下我們tomcat運行起來的目錄吧。(在console欄里面找到信息: Command line argument: -Dcatalina.base=/Develop/Workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0)

居然lib里面沒有utils.jar,gradle歇菜啊,為什么沒有自動拷貝過來呢!!!!!

怨天尤人不是好漢,這個地方在網上我也沒有找到所謂的最佳實戰,但是我想到了lifetragedy在架構師系列里面說到的Deployment Assembly的作用,方法也就有了。

在web項目上右鍵,選擇build path—>configure build path…–>Deployment Assembly。“cannot find entry utils” 
這里寫圖片描述

自己添加一個部署映射

點擊Add,選擇Archives from system 
這里寫圖片描述

Add上utils項目里面build出來的jar包地址 
這里寫圖片描述

添好之后點擊ok。 
這里寫圖片描述

啟動tomcat,在瀏覽器里面在訪問試一下,惡,ClassNotFoundException,是utils依賴的包沒有自動帶過來,我們如法炮制,把joda-time-2.4.jar加過來,或者放到gradle.build的依賴中均可。

再次運行tomcat,在瀏覽器中訪問。看到下面的文字,代表我們成功了。 
這里寫圖片描述

以后,我們至少可以在eclipse里面直接跑很多gradle構建的開源代碼了!!

以下是gradle官方對這個示例項目的說明文檔:http://rominirani.com/2014/08/12/gradle-tutorial-part-4-java-web-applications/


免責聲明!

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



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