Scala应用程序的Gradle init项目

时间:2018-03-19 13:31:59

标签: scala gradle

我想为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控制台应用模板吗?

3 个答案:

答案 0 :(得分:1)

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

  1. 在src / main / scala下的包下创建您的主类和方法
  2. 在gradle.build中添加两行,以添加“应用程序”插件并指定您的主类。

例如,您添加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.7scala-application构建类型现已存在。

答案 2 :(得分:0)

除了拥有Java之外,您只需添加apply 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 '**/*.*'
}