Как создать модуль головоломки в SBT? - PullRequest
0 голосов
/ 20 ноября 2018

Я хотел бы использовать jlink для создания автономных пакетов приложений для всех платформ (darwin, linux, windows) из исходного кода Scala. Кажется, что jlink работает только с новыми (относительно) мозаичными модулями - поэтому мне нужно упаковать свой код как модуль. В мире Java этого, по-видимому, легко достичь, поместив специальный файл module-info.java в пакет, который станет модулем.

Я пытался следовать интуиции и просто поместил этот модуль-info.java в src/main/java/my.package.name/module-info.java. Хотя это не работает. Кажется, что scalac пытается прочитать module-info.java как обычный Java-файл (это не так), поэтому возникает ошибка

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

1 Ответ

0 голосов
/ 20 ноября 2018

В целом, похоже, что Scala не полностью поддерживает Java9 +, по крайней мере их примечания по совместимости читайте так.

Начиная с Scala 2.12.6 и 2.11.12, поддержка JDK 9+ является неполной. Следует отметить, что scalac не будет применять ограничения модуля платформы Java Система, что означает, что код, который проверяет типы, может вызвать ошибки компоновки во время выполнения. Scala 2.13.x обеспечит элементарную поддержку для этого, но, вероятно, только в ночных клубах, построенных на Java 11.

Вы можете подписаться на Функции поддержки JDK 9 + и Тестирование Java 11 для дальнейших обновлений.

...