gradle项目中如何支持java与scala混合使用?

来源:互联网 发布:阿里云 杰出 科学家 编辑:程序博客网 时间:2024/06/14 01:30

之前写过一篇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

0 0