SBT Включая двоичный файл в jar - PullRequest
1 голос
/ 12 мая 2019

Я использую внешний проект maven, в котором сгенерированный jar содержит двоичный файл foo/bar/file.dat, точный путь которого в источниках равен src/main/foo/bar/file.dat.Этот файл нужен по какой-то причине, иначе код выдает исключение.

Я пытался преобразовать его в проект SBT, но файл не включается в jar.

Я пытался добавить includeFilter in Compile := "parser.dat", но это выдает мне ошибку:

IO error while decoding .../src/main/foo/bar/file.dat with UTF-8: MALFORMED[1]
Please try specifying another one using the -encoding option

Как мне сказать SBT включить файл "как есть" в скомпилированный jar?

РЕДАКТИРОВАТЬ: Связанный вопрос не связан.Вопрос спрашивает: «Как правильно читать ресурсы?», А я хочу знать «при условии, что именно так я должен читать ресурсы, как правильно создать банку?».

Я хочу использоватьсторонняя библиотека как есть, без изменения кода.

1 Ответ

6 голосов
/ 12 мая 2019

Попробуйте использовать mappings, чтобы добавить пользовательский файл в пакет, например:

mappings in (Compile, packageBin) += {
  (baseDirectory.value / "src" / "main" / "foo" / "bar" / "file.dat") -> "foo/bar/file.dat"
}

При выполнении sbt package теперь должен получиться сосуд с file.dat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...