【发布时间】:2014-06-29 17:06:32
【问题描述】:
这在某种程度上是this question的后续行动。
当我使用 sbt 创建 Scala 包时,我可以使用以下方式之一运行它:
只需在 sbt 控制台输入
run或通过创建一个 jar 文件(使用
one-jar或assembly),并在系统控制台中键入java -jar myjar.jar运行此 jar
但我不知道怎么做
从 scala 程序运行我的包? (不是 sbt scala 控制台,在其中输入
import mypackage._一切正常)在另一个项目中使用我的 Scala 包?例如通过在另一个项目中导入
myjar?
编辑:您可以忘记我下面关于sbt-start-script 的问题,因为现在我正在使用sbt-native-packager(我刚刚尝试过它并且它有效,但我之前的问题仍然存在)。
我曾尝试使用sbt-start-script,但没有成功。 target/start 脚本创建得很好,但我收到这样的错误:
$ sh target/start
target/start: 2: target/start: Bad substitution
Exception in thread "main" java.lang.NoClassDefFoundError: Hi
Caused by: java.lang.ClassNotFoundException: Hi
...
这里我只是在src/main/scala 文件夹中有一个main.scala 文件,它是:
object Hi { def main(args: Array[String]) = println("Hi!") }
我在build.sbt 中使用这些设置:
import com.typesafe.sbt.SbtStartScript
seq(SbtStartScript.startScriptForClassesSettings: _*)
【问题讨论】:
-
只是澄清一下:您想要做的是将您的库用作另一个 SBT 项目中的依赖项?
-
@lpiepiora 我想我现在明白了。对于 scala 控制台,在类路径中添加 jar。对于另一个 SBT 项目,将 jar 添加到 lib 文件夹中。
标签: java scala jar sbt typesafe-stack