目標
我選擇第一個要修改的專案,無相依於任何專案,只要達到能在Eclipse上編譯完成且通過測試即可。
至於環境安裝與設定可以參考網上教學: link。
如何?
專案狀態
首先調整的是一個被許多專案所參考的Common專案,目前它參考於CommonLibraries中的jar檔,這也是我以往的麻煩處。要更新一個jar檔往往要動到一堆使用到的專案。
轉換為Gradle專案
接著我們按照 對專案點擊右鍵 > Configure > Convert to Gradle Project 的步驟,將專案轉為Gradle專案:
可以發現專案圖式上有個G,且程式碼資料夾與相依jar檔都消失了:新增build.gradle
build.gradle即build script,直接在專案目錄下建立此檔案即可。
建立Source Folder
由於我是java且要用於eclipse的專案,所以我在腳本中,引用了java與eclipse兩個plugin。sourceSets分別宣告了src、test與tools三個資料夾,如果專案是按照慣例方式建立,並不需要特別去設立sourceSets。
apply plugin: 'java' apply plugin: 'eclipse' sourceSets { main { java { srcDir 'src' } } test { java { srcDir 'test' } } tools { java { srcDir 'tools' } } }
在加入以上腳本後,對專案 點擊右鍵 > Gradle > Refresh Source Folders:
完成後會將設定的資料夾設為Source Folders,但因為沒加入任何相依的jar檔,應會出現編譯錯誤。
加入相依函式庫
Gradle可以透過我們所定義的reposiotry去尋找我們所相依的jar檔,這裡我直接使用Maven的Central Repository。而相依定義的部分,我使用了compile、runtime與testCompile,
- compile: 編譯production source所使用的函示庫。
- runtime: 執行期間所使用的函示庫。
- testCompile: 編譯test source所使用的函示庫。
以下是我的設定,供給大家參考:
repositories { mavenCentral() } dependencies { compile 'log4j:log4j:1.2.16' compile 'org.slf4j:slf4j-api:1.7+' compile 'net.java.dev.jna:jna:4+' compile 'net.java.dev.jna:platform:3+' compile 'javax.ws.rs:javax.ws.rs-api:2+' compile 'org.glassfish.jersey.core:jersey-client:2.14' compile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.14' runtime 'org.ow2.asm:asm:5+' runtime 'org.apache.commons:commons-lang3:3+' runtime 'commons-logging:commons-logging:1.1.1' testCompile 'org.powermock:powermock-core:1.6+' testCompile 'org.powermock:powermock-api-easymock:1.6+' testCompile 'org.powermock:powermock-mockito-release-full:1.6+' testCompile 'org.easymock:easymock:3.3' testCompile 'junit:junit:4.11' }
完成後,對專案 點擊右鍵 > Gradle > Refresh Dependencies,即可看到程式碼通通編過了。
總結
對於第一個專案,我要求先做到能夠在Eclipse上開發。在本文章學習到:
- 轉換既有專案為Gradle專案。
- 設定Source資料夾。
- 設定相依函式庫。
在下篇文章中,我會挑相依於此專案的專案來做修改。
補充
Source與Libraries刷新
我們可以在Preference中,找到Gradle項目裡的Enale automatic refresh,去啟動自動刷新。
Convension Over Configuration
在Gradle中,可以透過少少的設定就能做到大部分的事情。舉例來說,sourceSets是可以不必要的,前提是專案程式碼配置是依照maven“慣例”,如src/main/java或src/test/java。
留言
張貼留言