之前写过一篇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
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有