Вдобавок к тому, что уже предлагал предыдущий ответ , я считаю, что, вероятно, стоит упомянуть, что (до 2.12) библиотеки в 2.x не являются двоично-совместимыми между версиями. Для библиотек Scala принято добавлять _2.x
к идентификатору артефакта опубликованного библиотечного JAR. Поскольку SBT был построен на основе Scala (и это его де-факто стандартный инструмент сборки), он принимает эти соглашения, и оператор %%
автоматически добавит этот дополнительный «квалификатор» на основе версии Scala, которую вы используются.
Обратите внимание здесь, на mvnrepository.com , как идентификатор артефакта изменяется между Maven и объявлением зависимости SBT (в Maven идентификатор артефакта - tensorflow_2.12
, в SBT %%
позволяет не указывать это).
Одиночный %
обычно используется для Java зависимостей (на которые не влияет вышеупомянутое соглашение).
В качестве альтернативу (которую я предлагаю просто поиграть и убедиться, что там нет magi c), вы также можете использовать %
, чтобы указать зависимость Scala и явно указать версию Scala в идентификаторе артефакта, как следует:
libraryDependencies += "org.platanios" % "tensorflow_2.12" % "0.4.0" classifier "linux-cpu-x86_64"
Хорошая новость заключается в том, что, начиная с Scala 2.13, эта проблема была решена на самом root временном интервале. diate, которое также было введено для обеспечения взаимодействия между скомпилированным кодом Scala 2.13 и Scala 3.x.
EDIT
То, что вы обнаружили, на самом деле было проблемой в документации это было уже сообщалось , я открыл PR , чтобы исправить это.