gradle项目中如何支持java与scala混合使用?
之前写过一篇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
作者:菩提树下的杨过
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。