相关疑难解决方法(0)

SBT:启动非默认项目主类的命令行"run"

我开始使用sbt构建我的Scala代码(并处理依赖项).据我所知,如果我使用

$ sbt run <args>
Run Code Online (Sandbox Code Playgroud)

在命令行上,这将运行主项目的主类.

是否可以从命令行在任何其他项目中"运行",即不在交互式会话模式下?(我正在考虑可能看起来像$ sbt project <proj> run <args>什么的东西......)

我在交互模式下会做的是:

$ sbt
> project <projectname>
> run <args>
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,但我找不到任何描述此行为的文档.提示将非常感谢...

scala sbt

62
推荐指数
4
解决办法
3万
查看次数

如何在ScalaJS build.sbt中设置mainClass?

如何在ScalaJS build.sbt中设置mainClass?

目前我在build.sbt中设置了这样的主类(参见最后一行):

enablePlugins(ScalaJSPlugin)

name := "ScalaJS-Exp"

scalaVersion := "2.11.7"

libraryDependencies += "org.scala-js" %%% "scalajs-dom" % "0.8.1" 
libraryDependencies += "be.doeraene" %%% "scalajs-jquery" % "0.8.0" 

jsDependencies += RuntimeDOM

skip in packageJSDependencies := false

//scalaJSStage in Global := FastOptStage

// uTest settings
libraryDependencies ++= Seq(
    "com.lihaoyi" %%% "utest" % "0.3.1" % "test",
    "com.lihaoyi" %%% "scalatags" % "0.5.4",
    // Javascript libs
    "org.webjars" % "jquery" % "1.10.2",
    "org.webjars" % "jquery-ui" % "1.11.4"
)

jsDependencies ++= Seq(
    "org.webjars" % "jquery" % "1.10.2" / "jquery.js",
    "org.webjars" …
Run Code Online (Sandbox Code Playgroud)

program-entry-point scala sbt scala.js

7
推荐指数
1
解决办法
1754
查看次数

AWS EMR Spark 集群 - 使用 Scala fat JAR 的步骤,找不到 MainClass

我有一个 fat jar,用 Scala 编写,由 sbt 打包。我需要在 AWS EMR 的 Spark 集群中使用它。

如果我手动启动集群,将 jar 复制到 master 并使用这样的命令运行 Spark-submit 作业,它的功能就很好......

spark-submit --class org.company.platform.package.SparkSubmit --name platform ./platform-assembly-0.1.0.jar arg0 arg1 arg2
Run Code Online (Sandbox Code Playgroud)

但是...如果我尝试将其作为步骤添加到 EMR 集群,则会失败。stderr 的日志看起来像这样......

Exception in thread "main" java.lang.ClassNotFoundException: package.SparkSubmit
  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:278)
  at org.apache.hadoop.util.RunJar.run(RunJar.java:214)
  at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Run Code Online (Sandbox Code Playgroud)

我的 build.sbt 中的相关设置如下所示......

lazy val root = (project in file(".")).
  settings(
    name := "platform",
    version := "0.1.0",
    scalaVersion := "2.10.5", …
Run Code Online (Sandbox Code Playgroud)

scala jar executable-jar amazon-emr spark-submit

5
推荐指数
1
解决办法
2148
查看次数