跳到主要內容

Gradle - 第一個專案

目標

我選擇第一個要修改的專案,無相依於任何專案,只要達到能在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。

Reference

留言

這個網誌中的熱門文章

PostgreSQL - Unattended installation on windows

Introduction 要將別人軟體包裝到自己軟體中,不可或缺的東西就是Unattended installation。以Unattended installation來說,我們可以選擇透過Installer的silent mode安裝,也可以透過把目標軟體做成portable的版本。本篇文章分享這兩種方法,教導大家如何將PostgreSQL透過Unattended installation方式安裝到目標系統成為service。 Note. 本篇以PostgreSQL 10.7為例。 Install with installer Tips 安裝程式或反安裝程式的參數,除了可以直接上官網搜尋Installation User Guide以外,也可以直接使用help參數查詢: postgresql- 10.7 - 2 -windows-x64.exe --help Windows安裝程式主要有EnterpriseDB與BigSQL兩種。BigSQL版本安裝元件是透過網路下載且支援參數不如EnterpriseDB版本多,以我們需求來說,我們傾向於使用EnterpriseDB版本。接下來分享給大家安裝與反安裝方法。 Installation @ echo off set INSTALL_DIR =C:\postgres10 set INSTALLER =postgresql- 10.7 - 2 -windows-x64.exe   rem options for installation set SSMDB_SERVICE =postgresql- 10 set MODE =--unattendedmodeui none --mode unattended   set DB_PASSWD =--superpassword postgres set DB_PORT =--serverport 5432   set SERVICE_NAME =--servicename % SSMDB_SERVICE %   set PREFIX =--prefix "%INSTALL_DIR%" set DATA_DIR =--datadir "%INSTALL_DIR%\data"   set OPTIONS =

How to install RIDE on Windows?

Introduction 多年沒在Windows上開發RobotFramework,趁著這次整理一下RIDE安裝方法。 目前RIDE最新版本與Python對應版本如下: (3.6 < python <= 3.11) Install current released version (2.0.8.1) with: pip install -U robotframework-ride 安裝Python 直接到Python官網找尋最新的3.11版本,我使用3.11.9: link 。安裝就是一直下一步而已。 安裝wxPython 每次安裝RIDE最困難的都是wxPython。看了一下 官網 描述,我就姑且相信一下: 接著進入下 載頁面 就有安裝教學。基本上就是到Python目錄下的Scripts直接執行以下command: pip install -U wxPython 安裝RIDE 接著就如RIDE官網所說,執行以下command: pip install -U robotframework-ride 啟動RIDE 直接在相同目錄下執行ride就可以啟動了,你也可以直接在桌面建ride連結,加快下次啟動時間。 沒想到這次這麼順利就安裝完成了。因為我是使用java去啟動robot framework,就不特別講要怎麼使用pip安裝robot framework了。

Hello World!

即將要搬家,因此舊網頁內容將慢慢轉移至Blogger。 如果要存取舊網頁,可以使用以下連結: https://wiki.tonylin.idv.tw/dokuwiki/doku.php