提问者:小点点

Scala应用程序的Gradle init项目


我想为Scala创建一个骨架控制台应用程序,即一个具有打印“Hello world”的main函数的单个入口类。

我能够通过执行以下命令创建一个Scala库init项目:

gradle init--typescala库

然而,似乎没有scala应用程序,运行:

gradle init--typescala应用程序

不支持请求的构建设置类型scala应用程序。支持的类型:基本、groovy应用程序、groovy库、java应用程序、java库、pom、scala库。

Gradle没有Scala控制台应用模板吗?


共3个答案

匿名用户

不,没有scala的应用程序模板,但是很容易通过两个步骤将生成的“scala库”项目变成scala应用程序:

  1. 在src/main/scala下的包下创建主类和方法
  2. 在您的gradle.build中添加两行,添加'application'插件并指定您的主类。

例如,添加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'

匿名用户

在你拥有的Java之上,你几乎只需要添加application plugin:'scala'并将Main更改为:

object Main extends App {
    println('Hello, World!')
}

我最终就是这样做的。

此外,如果你想要联合编译(并且让编译器在同一个地方理解JavaScala),你可以添加以下片段(每个源代码集一个块:maintestjmh等):

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 '**/*.*'
}

匿名用户

从Gradle 6.7开始,scala-application构建类型现在已经存在。