簡體   English   中英

Scala 應用程序的 Gradle init 項目

[英]Gradle init project for Scala application

我想為 Scala 創建一個框架控制台應用程序,即一個單一的入口類,其主要功能是打印“Hello world”。

我能夠通過執行以下命令創建一個 Scala 庫初始化項目:

gradle init --type scala-library

但是似乎沒有 scala 應用程序在運行:

gradle init --type scala-application

不支持請求的構建設置類型“scala-application”。 支持的類型:'basic'、'groovy-application'、'groovy-library'、'java-application'、'java-library'、'pom'、'scala-library'。

Gradle 沒有 Scala 控制台應用程序模板嗎?

不,沒有 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'

在你擁有的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 '**/*.*'
}

Gradle 6.7開始,現在存在scala-application構建類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM