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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏葡萄城控件技术团队

Asp.Net MVC4入门指南(7):给电影表和模型添加新字段

在本节中,您将使用Entity Framework Code First来实现模型类上的操作。从而使得这些操作和变更,可以应用到数据库中。 默认情况下,就像您在...

18310
来自专栏Adamshuang 技术文章

Zookeeper 通知更新可靠吗? 解读源码找答案!

遇到Keepper通知更新无法收到的问题,思考节点变更通知的可靠性,通过阅读源码解析了解到zk Watch的注册以及触发的机制,本地调试运行模拟zk更新的不可靠...

9008
来自专栏魏艾斯博客www.vpsss.net

解决 Winscp 不显示隐藏文件的办法

1002
来自专栏进步博客

使用Flash检测屏幕阅读器

确切的说是:使用Flash检测Windows平台下使用了MSAA API的辅助技术,并不能区分使用的是屏幕阅读器、屏幕放大器等。

922
来自专栏散尽浮华

Centos下部署DRBD+NFS+Keepalived高可用环境记录

使用NFS服务器(比如图片业务),一台为主,一台为备。通常主到备的数据同步是通过rsync来做(可以结合inotify做实时同步)。由于NFS服务是存在单点的,...

1K5
来自专栏lgp20151222

重新设置Eclipse的workspace路径

1. 启动Eclipse/MyEclipse后, 打开"Window -> Preferences -> General -> Startup and Shut...

1194
来自专栏有趣的Python

程序员装机必备爆款软件推荐与配置(windows版)

做机也要做一只全能的机哦 值此新年来临之即,面对两百多个G的c盘。忍痛割爱将电脑系统重装,版本为(win10:1079)之后的所有电脑环境更新,专业软件安装均会...

4083
来自专栏菩提树下的杨过

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

之前写过一篇maven项目中java与scala如何混用,今天来看看gradle项目中如何达到同样的效果: 一、目录结构 ? 基本上跟maven一样,tips:...

2766
来自专栏腾讯云TStack专栏

Ceph 集群整体迁移方案

场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器...

8265
来自专栏岑志军的专栏

iOS UILabel设置中划线不能包含中文

1274

扫码关注云+社区