vla*_*mir 6 java scala sbt module-info java-11
我想使用 jlink 从 Scala 源代码为所有平台(darwin、linux、windows)创建自包含的应用程序包。似乎jlink只适用于新的(相对)拼图模块 - 所以我需要将我的代码打包为一个模块。在 Java 世界中,通过将特殊的 module-info.java 文件放置到将成为模块的包中,似乎很容易实现。
我试图遵循直觉,只是将这个 module-info.java 放入src/main/java/my.package.name/module-info.java. 虽然这不起作用。似乎scalac正在尝试像往常一样读取 module-info.java 的 Java 文件(事实并非如此),因此出现错误
Run Code Online (Sandbox Code Playgroud)module-info.java:1:8: illegal start of type declaration [error] module my.package.name { [error] ^
我需要做什么才能将我的 Scala 代码打包为一个模块?
开放 JDK:11 Scala:2.12.4 SBT:1.1.6
总的来说,scala 似乎并不完全支持 Java9+,至少他们的兼容性说明是这样写的。
从 Scala 2.12.6 和 2.11.12 开始,JDK 9+ 支持不完整。值得注意的是,scalac 不会强制执行 Java 平台模块系统的限制,这意味着类型检查的代码可能会在运行时产生链接错误。Scala 2.13.x 将为此提供基本支持,但可能仅在基于 Java 11 构建的 nightlies 中。
您可以关注JDK 9+和Java 11 测试的支持功能以获取进一步更新。
| 归档时间: |
|
| 查看次数: |
753 次 |
| 最近记录: |