【问题标题】:Is Scala 3 Compatible with Maven?Scala 3 与 Maven 兼容吗?
【发布时间】:2022-01-05 10:49:50
【问题描述】:

我试图让 Maven 编译 Scala 3,但我得到了一些奇怪的东西,比如

[INFO] --- scala-maven-plugin:4.5.4:compile (default) @ laboratory ---
[INFO] Using incremental compilation using Mixed compile order
[INFO] compiling 1 Scala source and 10 Java sources to C:\Users\ERIC\Documents\git\loom-lab\laboratory\target\classes ...
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\Scala\net\kolotyluk\loom\HelloScala.scala:<233..233>: '=' expected, but '{' found
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Context.java:<332..332>: unclosed string literal
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Context.java:<595..595>: unclosed string literal
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Context.java:<666..744>: '}' expected but eof found.
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Experiment04_PrimeThreads.java:<16902..16902>: unclosed string literal
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Experiment04_PrimeThreads.java:<17176..17176>: unclosed string literal
[ERROR] C:\Users\ERIC\Documents\git\loom-lab\laboratory\src\main\java\net\kolotyluk\loom\Experiment04_PrimeThreads.java:<28863..28870>: '}' expected but eof found.
[ERROR] 7 errors found

首先,为什么.java 文件也会失败?

HelloScala.scala 的代码是

package net.kolotyluk.loom

import java.time.Instant
import java.util.concurrent.StructuredExecutor
import scala.util.Using

object HelloScala {
  def main(args: Array[String]) {
    Context.printHeader(HelloScala.getClass)

    val results =
      Using(StructuredExecutor.open("HelloScala")) { structuredExecutor =>
        val futureResults = (0 to 15).map { item =>
          println(s"item = $item, Thread ID = ${Thread.currentThread}")
          structuredExecutor.fork { () =>
            println(s"\ttask = $item, Thread ID = ${Thread.currentThread}")
            item
          }
        }
        futureResults.map(_.get)
      }

    println(results)
  }
}

而且使用 Scala 2.13 编译得很好,所以错误消息没有意义。

顺便说一句,在 IntelliJ 中,我无法构建 Scala 3,由于不同的原因而失败...

【问题讨论】:

  • 使用 Scala 编译器的&lt;m..n&gt; 中的数字是多少?使用 Java 编译器,这些是在 .java 文件中发生错误的行号,但对于这么短的源,这不可能出现在这里。
  • 回答您的辅助问题:是的,scala-maven-plugin 与最新版本的 Scala 3 兼容。

标签: java scala maven scala-3 scala-maven-plugin


【解决方案1】:

HelloScala.scala 出错的原因是过程语法被删除:https://docs.scala-lang.org/scala3/reference/dropped-features/procedure-syntax.html

改为使用

def main(args: Array[String]): Unit = {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-23
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 2019-12-30
    • 1970-01-01
    • 2021-08-04
    相关资源
    最近更新 更多