差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

下次修改
前次修改
java:gradle:helloworld [2014/12/22 23:34]
tony 建立
java:gradle:helloworld [2023/06/25 09:48] (目前版本)
行 17: 行 17:
 build.gradle即build script,直接在專案目錄下建立此檔案即可。 build.gradle即build script,直接在專案目錄下建立此檔案即可。
 ==== 建立Source Folder ==== ==== 建立Source Folder ====
 +由於我是java且要用於eclipse的專案,所以我在腳本中,引用了java與eclipse兩個plugin。sourceSets分別宣告了src、test與tools三個資料夾,如果專案是按照慣例方式建立,並不需要特別去設立sourceSets。
 <code bash> <code bash>
 apply plugin: '​java' ​ apply plugin: '​java' ​
行 23: 行 24:
 sourceSets { sourceSets {
   main {   main {
-    java {+      ​java {
       srcDir ​ '​src'​       srcDir ​ '​src'​
-    }+      ​}
   }   }
   test {   test {
-    java {+      ​java {
       srcDir ​ '​test'​       srcDir ​ '​test'​
-    }+      ​}
   }   }
   tools {   tools {
-    java {+      ​java {
       srcDir ​ '​tools'​       srcDir ​ '​tools'​
-    }+      ​}
   }   }
 } }
 </​code>​ </​code>​
 +在加入以上腳本後,對專案 點擊右鍵 > Gradle > Refresh Source Folders:\\
 +{{:​java:​gradle:​gradle-refresh.png?​500|}}\\
 +完成後會將設定的資料夾設為Source Folders,但因為沒加入任何相依的jar檔,應會出現編譯錯誤。
 +==== 加入相依函式庫 ====
 +Gradle可以透過我們所定義的reposiotry去尋找我們所相依的jar檔,這裡我直接使用Maven的Central Repository。而相依定義的部分,我使用了compile、runtime與testCompile,
 +  * compile: 編譯production source所使用的函示庫。
 +  * runtime: 執行期間所使用的函示庫。
 +  * testCompile:​ 編譯test source所使用的函示庫。
 +以下是我的設定,供給大家參考:​
 +<code bash>
 +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'​
 +}
 +</​code>​
 +完成後,對專案 點擊右鍵 > Gradle > Refresh Dependencies,即可看到程式碼通通編過了。\\
 +{{:​java:​gradle:​gradle-project-done-tonylin.png?​400|}}
 +
 ===== 總結 ===== ===== 總結 =====
 +對於第一個專案,我要求先做到能夠在Eclipse上開發。在本文章學習到:​
 +  * 轉換既有專案為Gradle專案。
 +  * 設定Source資料夾。
 +  * 設定相依函式庫。
 +在下篇文章中,我會挑相依於此專案的專案來做修改。
  
 +===== 補充 =====
 +==== Source與Libraries刷新 ====
 +我們可以在Preference中,找到Gradle項目裡的Enale automatic refresh,去啟動自動刷新。\\
 +{{:​java:​gradle:​gradle-refresh-auto.png?​500|}}
 +==== Convension Over Configuration ====
 +在Gradle中,可以透過少少的設定就能做到大部分的事情。舉例來說,sourceSets是可以不必要的,前提是專案程式碼配置是依照maven"​慣例"​,如src/​main/​java或src/​test/​java。
 +===== Reference =====
 +  * [[http://​en.wikipedia.org/​wiki/​Convention_over_configuration|Convention_over_configuration]]
 +  * [[http://​www.gradle.org/​docs/​current/​userguide/​userguide.html|Gradle User Guide]]
 =====    ===== =====    =====
 ---- ----
 \\ \\
 ~~DISQUS~~ ~~DISQUS~~