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 条评论
登录 后参与评论

相关文章

来自专栏Aox Lei

安装sentry

Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等...

1033
来自专栏雨过天晴

原 用u盘制作mac安装盘

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

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

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

2196
来自专栏吴小龙同學

Android library分享到jcenter

1 2 3dependencies { compile 'com.wuxiaolong.pullloadmorerecyclerview:library:1...

3116
来自专栏哈雷彗星撞地球

Xcode 创建.a和framework静态库库介绍静态库与动态库的区别创建.a静态库创建framework静态库

最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录。

1002
来自专栏C# 编程

[C#源代码]使用SCPI指令对通信端口(RS232/USB/GPIB/LAN)进行仪器编程

 本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢! 本软件是基于NI-VISA/VISA32(Virtu...

3250
来自专栏Hadoop实操

如何为HttpFS服务配置SSL

前面Fayson也介绍过《如何在集群外节点跨网段向HDFS写数据》和《如何使用Java代码访问HDFS》。在非Kerberos的环境中,使用HttpFS是不需要...

4046
来自专栏互联网杂技

SpringBoot (一) :入门篇

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而...

1053

如何自动地将代码从Git平台部署至组件容器

将源代码从Git平台部署至组件容器有很多种可以选择的方法,包括重新部署整个容器,通过卷即时重新部署,或者使用“git clone”的方法。但是,当这个过程自动化...

1939
来自专栏转载gongluck的CSDN博客

基于 Ubuntu 搭建 VNC 远程桌面服务

前言 任务时间:5min ~ 10min 必要知识 本教程假设您已学习以下 Ubuntu 基本操作: 连接 SSH 执行命令 编辑文件 如果还没有掌握 Ubu...

7479

扫码关注云+社区