【发布时间】:2011-08-26 22:29:28
【问题描述】:
答案:Making stand-alone jar with Simple Build Tool 似乎是我需要的,但它对我来说没有足够的信息,所以这是一个后续。
(1) 我如何根据自己的需要调整答案?我不明白需要改变什么。
(2) 运行什么命令来创建独立 jar?
(3) jar 创建后在哪里可以找到?
我尝试过的:
-
将链接答案中的代码逐字粘贴到我的:
project/build/dsg.scala文件中。该文件现在有一个class ForkRun(info: ProjectInfo) extends DefaultProject(info)(从以前开始,用于在与 SBT 不同的 VM 中运行项目)和新的:
trait AssemblyProject extends BasicScalaProject来自链接的答案。
我还尝试将正文(
AssemblyProject的所有defs和lazy val粘贴到ForkRun的正文中。
要创建jar,我在 SBT 提示符下运行 package 并得到:
[info] Packaging ./target/scala_2.8.1/dsg_2.8.1-1.0.jar ...
[info] Packaging complete.
所以我尝试通过以下方式从 shell 运行 dsg_2.8.1-1.0.jar:
java -jar dsg_2.8.1-1.0.jar
但我明白了:
Failed to load Main-Class manifest attribute from
dsg_2.8.1-1.0.jar
这可能是由于我的项目有多个入口点造成的吗?当我从 SBT 提示符执行 run 时,我从列表中选择。也许我需要在创建包时指定默认值?
【问题讨论】:
-
我已经编辑了我从 2010 年 (stackoverflow.com/questions/2887655/…) 开始的答案,以包含 retronym 的 sbt-onejar 插件。
标签: scala package executable-jar sbt