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

一、目录结构

二、build.gradle配置

group 'yjmyzz'

version '1.0-SNAPSHOT'

apply plugin: 'java'

apply plugin: 'scala'

apply plugin: 'application' //可选(可自动生成shell启动脚本)

mainClassName = 'AppDemo' //可选(与上行的application插件配套出现)

//这里是关键(把java与scala的源代码目录全映射到scala上,

// 这样gradle compileScala时就能同时编译java与scala的源代码)

sourceSets {

main {

scala {

srcDirs = ['src/main/scala', 'src/main/java']

}

java {

srcDirs = []

}

}

test {

scala {

srcDirs = ['src/test/scala', 'src/test/java']

}

java {

srcDirs = []

}

}

}

//可选(项目初始化时,可用gradle cDirs生成scala及java的src目录)

task "createDirs" << {

sourceSets*.scala.srcDirs*.each { it.mkdirs() }

sourceSets*.java.srcDirs*.each { it.mkdirs() }

sourceSets*.resources.srcDirs*.each { it.mkdirs() }

}

repositories {

mavenLocal()

maven { url 'http://maven.aliyun.com/nexus/content/repositories/central/' }

mavenCentral()

}

dependencies {

compile "org.scala-lang:scala-library:2.11.7"

compile "org.scala-lang:scala-compiler:2.11.7"

compile "org.scala-lang:scala-reflect:2.11.7"

testCompile "junit:junit:4.11"

}

//可选,如果想让生成的jar可直接运行,建议加上

jar {

manifest {

attributes 'Main-Class': 'AppDemo'

}

}

这样就可以了:

创建初始目录:gradle cDirs (注:这是缩写方式,与gradle createDirs完全相同)

编译: gradle compileScala

生成jar包: gradle jar

生成带启动脚本的可运行包: gradle installDist

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容