首页 > 解决方案 > Sbt 不设置 javacOptions 就不会编译生成的 java 文件

问题描述

我有一个多项目 sbt 构建文件。其中一个项目如下所示:

lazy val genFiles = (project in file("genFiles")).
    dependsOn(generator).
    settings(
      sourceGenerators in Compile += Def.taskDyn { ... }.taskValue,
      libraryDependences ++= Seq(...) ++ Seq(...),
      javacOptions += "-nowarn"
    )

这会生成 java 文件并编译 scala 和 java 文件。

[info] Compiling 1 Scala source and 1 Java source to /projects/genFiles/target/scala-2.12/classes ...

如果我删除设置javacOptions,那么它只会尝试编译 scala 文件并失败,因为 scala 文件引用了 java 类。

[info] Compiling 1 Scala source to /projects/genFiles/target/scala-2.12/classes ...

我正在运行 sbt 1.2.8。

知道为什么我需要设置javacOptions吗?

标签: javascalasbt

解决方案


推荐阅读