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

简介: 之前写过一篇maven项目中java与scala如何混用,今天来看看gradle项目中如何达到同样的效果: 一、目录结构 基本上跟maven一样,tips:这一堆目录结构不用死记,后面会讲如何用gradle命令快速生成   二、build.

之前写过一篇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

目录
相关文章
|
1月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
41 1
|
3天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
12 3
|
5天前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
17 1
|
28天前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
298 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
1月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
20 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
12天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
25天前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
29天前
|
运维 Java Maven
Dockerfile实践java项目
通过上述实践,我们可以看到,Dockerfile在Java项目中扮演着至关重要的角色,它不仅简化了部署流程,提高了环境一致性,还通过多阶段构建、环境变量配置、日志管理、健康检查等高级特性,进一步增强了应用的可维护性和可扩展性。掌握这些实践,将极大地提升开发和运维团队的工作效率。
40 1
|
29天前
|
算法 Java Linux
java制作海报五:java 后端整合 echarts 画出 折线图,项目放在linux上,echarts图上不显示中文,显示方框口口口
这篇文章介绍了如何在Java后端整合ECharts库来绘制折线图,并讨论了在Linux环境下ECharts图表中文显示问题。
37 1
|
30天前
|
运维 Java Maven
Dockerfile实践java项目
通过上述实践,我们可以看到,Dockerfile在Java项目中扮演着至关重要的角色,它不仅简化了部署流程,提高了环境一致性,还通过多阶段构建、环境变量配置、日志管理、健康检查等高级特性,进一步增强了应用的可维护性和可扩展性。掌握这些实践,将极大地提升开发和运维团队的工作效率。
21 1
下一篇
无影云桌面