我想为Scala创建一个骨架控制台应用程序,即一个带有打印“Hello world”主函数的入口类。
我能够通过执行:
创建一个Scala库init项目 gradle init --type scala-library
然而似乎没有scala-application,正在运行:
gradle init --type scala-application
不支持请求的构建设置类型“scala-application”。支持的类型:'basic','groovy-application','groovy-library','java-application','java-library','pom','scala-library'。
Gradle没有Scala控制台应用模板吗?
答案 0 :(得分:1)
不,没有scala应用程序模板,但是很容易通过两个步骤将生成的“ scala-library”项目变成scala应用程序:
例如,您添加src / main / scala / com / example / myapp / Main.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'
答案 1 :(得分:1)
截至Gradle 6.7,scala-application
构建类型现已存在。
答案 2 :(得分:0)
除了拥有Java
之外,您只需添加apply plugin: 'scala'
并将Main
更改为:
object Main extends App {
println('Hello, World!')
}
我最终只是那样做。
此外,如果您希望联合编译(并使编译器在同一位置理解Java
和Scala
),则可以添加以下代码段(每个源集一个块:main
, test
,jmh
等):
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 '**/*.*'
}