SBT SCALA java.lang.ClassNotFoundException: javax.mail.Authenticator - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть проект SBT Scala, который отправляет пользователям электронные письма с некоторой информацией.Все работает нормально, используя IntelliJ для его запуска, но мне нужно собрать проект, поставить на сервер и запустить из терминала.

На первом шаге я использую команду ниже для сборки проекта:

sbt clean compile package

после этого я пытаюсь запустить его:

scala target / scala-2.12 / project_name_sbt_2.12-0.1.jar

тогда я получил ошибку:

java.lang.ClassNotFoundException: javax.mail.Authenticator
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

Это приложение командной строки, я не использую Tomcat и другие контейнеры.Конструкция проста и легка.У меня есть основной класс, например:

object MyApp extends App {new SomeService().run()}

У меня есть build.sbt, например:

libraryDependencies ++= Seq(
          "org.scalatest" %% "scalatest" % "3.0.5" % "test",
          "mysql" % "mysql-connector-java" % "5.1.16",
          "org.jsoup" % "jsoup" % "1.11.2",
          "joda-time" % "joda-time" % "2.10.1",
          "org.apache.commons" % "commons-email" % "1.5"
        )

Не могли бы вы указать мне правильное направление для решения этой проблемы?Что не так?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Спасибо за Маркуса Аппеля, Луиса Мигеля Мехию Суареса и Махмуда Ханафи.Как вы и рекомендовали, я использовал сборку, и она отлично работает для меня.

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

Я обычно использую этот плагин , чтобы создать банку.Попробуйте добавить его в файл plugins.sbt

и выполните эту команду, чтобы создать jar:

sbt "set test in assembly := {}" assembly

, а затем попробуйте снова запустить jar.

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