Scala应用程序的Gradle init项目
我想为Scala创建一个框架控制台应用程序,即一个具有打印“Hello world”主函数的单一入口类 我能够通过执行以下操作创建Scala library init项目:Scala应用程序的Gradle init项目,scala,gradle,Scala,Gradle,我想为Scala创建一个框架控制台应用程序,即一个具有打印“Hello world”主函数的单一入口类 我能够通过执行以下操作创建Scala library init项目: gradleinit——键入scala库 但是,似乎没有scala应用程序运行: gradleinit——键入scala应用程序 不支持请求的生成设置类型“scala应用程序”。支持的类型:“基本”、“groovy应用程序”、“groovy库”、“java应用程序”、“java库”、“pom”、“scala库” 没有用于Gr
gradleinit——键入scala库
但是,似乎没有scala应用程序运行:
gradleinit——键入scala应用程序
不支持请求的生成设置类型“scala应用程序”。支持的类型:“基本”、“groovy应用程序”、“groovy库”、“java应用程序”、“java库”、“pom”、“scala库”
没有用于Gradle的Scala控制台应用程序模板吗?没有,没有Scala应用程序模板,但是可以通过两个步骤将生成的“Scala库”项目创建为Scala应用程序:
package com.example.myapp
object Main {
def main(args: Array[String]): Unit = {
println("Hello")
}
}
然后在gradle.build中添加:
apply plugin: 'application'
mainClassName='com.example.myapp.Main'
除了Java之外,您几乎只需要添加
apply插件:“scala”
并将Main
更改为:
object Main extends App {
println('Hello, World!')
}
我最后就是这么做的
此外,如果您想要联合编译(并且让编译器在同一位置理解Java
和Scala
),您可以添加以下代码段(每个源代码集一个代码块:main
,test
,jmh
,等等):
从
scala应用程序开始,
构建类型现在已经存在。是否有任何声明说明为什么Gradle不包含任何scala应用程序模板?您可以从java应用程序项目开始,然后按照Gradle文档中有关scala插件的描述添加“scala”插件:谢谢。我们这样做有什么原因吗?我们有没有一种更地道的方式来做这件事?
sourceSets.main {
java.srcDirs = []
scala.srcDirs = ['src/main/scala', 'src/main/java']
scala.include '**/*.*'
}
sourceSets.test {
java.srcDirs = []
scala.srcDirs = ['src/test/scala', 'src/test/java']
scala.include '**/*.*'
}