文章出處

之前寫過一篇maven項目中java與scala如何混用,今天來看看gradle項目中如何達到同樣的效果:

一、目錄結構

基本上跟maven一樣,tips:這一堆目錄結構不用死記,后面會講如何用gradle命令快速生成

 

二、build.gradle配置

 1 group 'yjmyzz'
 2 version '1.0-SNAPSHOT'
 3 
 4 apply plugin: 'java'
 5 apply plugin: 'scala'
 6 apply plugin: 'application' //可選(可自動生成shell啟動腳本)
 7 mainClassName = 'AppDemo' //可選(與上行的application插件配套出現)
 8 
 9 //這里是關鍵(把java與scala的源代碼目錄全映射到scala上,
10 // 這樣gradle compileScala時就能同時編譯java與scala的源代碼)
11 sourceSets {
12     main {
13         scala {
14             srcDirs = ['src/main/scala', 'src/main/java']
15         }
16         java {
17             srcDirs = []
18         }
19     }
20 
21     test {
22         scala {
23             srcDirs = ['src/test/scala', 'src/test/java']
24         }
25         java {
26             srcDirs = []
27         }
28     }
29 }
30 
31 //可選(項目初始化時,可用gradle cDirs生成scala及java的src目錄)
32 task "createDirs" << {
33     sourceSets*.scala.srcDirs*.each { it.mkdirs() }
34     sourceSets*.java.srcDirs*.each { it.mkdirs() }
35     sourceSets*.resources.srcDirs*.each { it.mkdirs() }
36 }
37 
38 repositories {
39     mavenLocal()
40     maven { url 'http://maven.oschina.net/content/groups/public/' }
41     mavenCentral()
42 }
43 
44 dependencies {
45     compile "org.scala-lang:scala-library:2.11.7"
46     compile "org.scala-lang:scala-compiler:2.11.7"
47     compile "org.scala-lang:scala-reflect:2.11.7"
48     testCompile "junit:junit:4.11"
49 }
50 
51 //可選,如果想讓生成的jar可直接運行,建議加上
52 jar {
53     manifest {
54         attributes 'Main-Class': 'AppDemo'
55     }
56 }

這樣就可以了:

創建初始目錄:gradle cDirs (注:這是縮寫方式,與gradle createDirs完全相同)

編譯: gradle compileScala

生成jar包: gradle jar

生成帶啟動腳本的可運行包: gradle installDist


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()