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

时间: 2024-10-24 15:05:08

gradle项目中如何支持java与scala混合使用?的相关文章

安卓项目中的R.java文件丢失如何解决

第一种方法,也就是你的项目没有什么大的问题的话,那么就作出如图所示的选择,应该就可以解决你的问题了. 第二种就是看看你这边有没有勾选图中所示的选项,也就是你的r.java能不能自动生成. 第三种深层次一点的就是,你先clear一下,然后再build automatically一下,应该就可以了.如图所示. 如果这些都没能够解决你的问题,那么很可能是你很久没有开发项目了,你的sdk要更新了,如图所示. 以上四种方法基本可以解决你的这个问题.如没解决,可以留言. 安卓项目中的R.java文件丢失如何

Windows Presentation Foundation (WPF) 项目中不支持xxx的解决

一般Windows Presentation Foundation (WPF) 项目中不支持xxx都是由于没引用相应的程序集导致,比如Windows Presentation Foundation (WPF) 项目中不支持RotateTransform是由于没有引用PresentationCore程序集,引用即可解决问题. 原文地址:https://www.cnblogs.com/ssvip/p/9528882.html

nuxt 脚手架创建nuxt项目中不支持es6语法的解决方案

node本身并不支持es6语法,我们通常在vue项目中使用es6语法,是因为,我们使用babel做过处理, 为了让项目支持es6语法,我们必须同时使用babel 去启动我们的程序,所以再启动程序中加 --exec babel-node,让node 和babel-node同时启动程序 需要在package.json文件夹中 "scripts": { "dev": "cross-env NODE_ENV=development nodemon server/i

gradle项目中profile的实现

gradle中并没有直接类似maven中的profile支持,只能变通的用其它方法来处理,在打包不同环境的应用时,通常会遇到二类问题: 一.不同的环境依赖的jar包不同 拿web开发来说,生产环境一般会采用weblogic,jboss这类重量级的容器,通常这类web server已经内置了很多第三方的通用jar包,而开发环境,一般采用嵌入式jetty这类轻量级的容器,内置的jar包会少一些,在maven中可以用<scope>provided</scope>来处理,到了gradle中

使用 Lombok 简化项目中无谓的Java代码

在写使用Java时,难免会有一些模板代码要写,不然get/set,toString, hashCode, close 资源,定义构造函数等等.代码会显得很冗余,很长.Lombok项目可以是我们摆脱这些东西,通过一系列的注解,Lombok可以帮我们自动生成这些函数. Lombok 官网地址:https://projectlombok.org/ 参考文档:https://projectlombok.org/features/index.html 1. 安装 到官网下载 lombok.jar,直接双击

Web项目中诡异的java.lang.ClassNotFoundException: ch.qos.lorgback.classic.PatternLayout问题解决

引言: 诡异而少见的java.lang.ClassNotFoundException: ch.qos.lorgback.classic.PatternLayout异常错误信息,在启动的时候,出现了异常,哪里出了问题呢? 1.  背景介绍 项目是Web项目,使用了slf4j-api, 使用logback做为默认的日志包:之前一直工作正常,在将日志路径调整到了pom.xml之后,忽然就蹦出来一个异常错误信息. pom.xml中引用的maven片段: <dependency> <artifac

AndroidStudio Gradle项目中添加.so文件

其实弄了大半天无非就是把.SO文件打包到APK的lib文件夹中,假如仔细阅读了Gradle的使用方法,自然就知道其实Gradle官方在新版已经自动实现了打包.SO文件的.很简单,跟eclipse一样,首先把armeabi 等等文件加考到app目录下的libs里,接着就是在配置的android节点下加入下面的内容就ok即build.gradle的android节点下: sourceSets { main { jniLibs.srcDirs = ['libs']  } }

jsp项目中连接数据库解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver的问题

报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 今天在做jsp连接数据库操作时,一直报加载不了驱动的错误,代码检查了很久都没错,重新导jar包也不行,最后又看了一遍同学的路径,原来是我把jar包放错了位置 ,应该放在WEB-INF中的lib下,而我放在了WEB下的lib中.然后又往里面拖了一下,成功了! then 原文地址:https://www.cnblogs.com/bibimonster/p/10392827.html

在android项目中运行普通的java程序出错!

http://www.cnblogs.com/wangmars/p/3255044.html # # A fatal error has been detected by the Java Runtime Environment: # #  Internal Error (javaClasses.cpp:136), pid=1996, tid=11456 #  fatal error: Invalid layout of preloaded class # # JRE version:  (7.