我有一個包含程序集插件的build.sbt文件。直到最近的構建,Main-Class屬性被包含在組裝的遠程jar中,但突然之間,情況就不再如此了。爲什麼生成的清單中沒有Main-Class屬性?
當我嘗試運行jar,我得到了獨特的:
no main manifest attribute, in ./target/scala-2.10/foo-0.3.0-SNAPSHOT.jar
但使用運行從SBT控制檯,工作正常。
我的build.sbt目前看起來像這樣(mainClass在程序集中添加,試圖強制指示程序集插件它確實應該包含,雖然我注意到在插件源代碼中,它看起來像是檢查一個無論如何指定爲運行)。
import AssemblyKeys._
name := "foo"
version := "0.3.0-SNAPSHOT"
organization := "com.mycompany.myproduct"
scalaVersion := "2.10.4"
mainClass in (Compile, run) := Some("ProcessRelogger")
mainClass in assembly := Some("ProcessRelogger")
assemblySettings
libraryDependencies ++= Seq(
"org.scalatest" % "scalatest_2.10" % "1.9.2" % "test",
"ch.qos.logback" % "logback-classic" % "1.0.9",
"com.typesafe.akka" %% "akka-actor" % "2.2.4",
"joda-time" % "joda-time" % "2.3",
"com.rabbitmq" % "amqp-client" % "3.3.4",
"org.scalaz" % "scalaz-core_2.10" % "7.0.6",
"com.typesafe.slick" %% "slick" % "2.0.2",
"postgresql" % "postgresql" % "9.1-901.jdbc4",
"com.escalatesoft.subcut" %% "subcut" % "2.0"
)
當我解壓縮jar文件,並檢查META-INF/MANIFEST.MF時,沒有包含Main-Class:屬性。
愚蠢的問題 - Processrelogger中是否有多個主電源? – Azzie 2014-10-07 17:38:08
我的第一個猜測是嘗試FQDN而不是僅僅是類名。 – lgasior 2014-10-07 20:22:13
sbt-assembly的版本是什麼? – 2014-10-08 07:07:51