When exporting a Java Scala project it failed to get scala/ScalaObject

心已入冬 提交于 2019-12-11 11:59:50

问题


I'm working on eclipse with Scala 2.9.3 plugin installed.
I have a Scala project which work fine from the eclipse but when I export the project to "Runnable JAR File" and I try to run it I'm getting the following exception:

java.lang.NoClassDefFoundError: scala/ScalaObject

I tried all the 3 Library handling options:

  • Extract required libraries...
  • Package required libraries...
  • Copy required libraries...

All end up in the same exception.

What I need to do in order to make a standalone JAR file from my project?


回答1:


I've used sbt-assembly plugin in the past, I found it quite easy to use.




回答2:


If you are using SBT for maintaining & building your project, then like pedrofurla suggested you should try sbt-assembly plugin. In the simplest case just add the follwing to your project build (i prefer Build.scala, but in *.sbt it looks the same):

1) imports:

import sbtassembly.Plugin._
import AssemblyKeys._

2) settings:

mainClass in assembly := Some("path.to.MainClass")
jarName   in assembly := "jar-name.jar"

3) If you want to publish artifact:

artifact in (Compile, assembly) ~= { art =>
  art.copy(`classifier` = Some("assembly"))
} // add classifier

and then your publishing task:

lazy val publishingSettings = addArtifact(artifact in (Compile, assembly), assembly) ++ Seq(
    publishTo := /* your repository settings */
  )

The call assembly to get all-in-one jar-file or publish to publish it to your repo. That should work



来源:https://stackoverflow.com/questions/17773595/when-exporting-a-java-scala-project-it-failed-to-get-scala-scalaobject

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!