2015-04-10 4 views
1

У меня есть файл build.sbt, который отлично работает в sbt 13.7. Но в 13.8 это дает мне ошибку «ошибка типа в выражении». Он бросает ошибку в начале этой строки:Файл сборки SBT, не распознающий «сборку»

mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) => 
{ ... 

Если я стираю блок mergeStrategy в целом, это дает мне ту же «тип ошибку в выражении» в начале строки вместо:

jarName in assembly := "theBigServer.jar" 

Так что я предполагаю, что проблема связана с «сборкой». Должно ли это обрабатываться по-разному в 13,8?

Это полный build.sbt файл:

organization := "com.myco" 
version  := "0.1" 
scalaVersion := "2.11.6" 
scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8") 

resolvers ++= Seq(
    "spray repo" at "http://repo.spray.io/", 
    "Scalaz Bintray Repo" at "http://dl.bintray.com/scalaz/releases"  // for scalaz-stream 
) 
libraryDependencies ++= { 
    val akkaV = "2.3.9" 
    val sprayV = "1.3.2" 
    Seq(
    "io.spray"   %% "spray-can"  % sprayV, 
    "io.spray"   %% "spray-routing" % sprayV, 
    "io.spray"   %% "spray-testkit" % sprayV, 
    "io.argonaut"   %% "argonaut"  % "6.0.4",  
    "com.typesafe.akka" %% "akka-actor" % akkaV, 
    "com.typesafe.akka" %% "akka-testkit" % akkaV, 
    "com.github.nscala-time" %% "nscala-time" % "1.8.0", 


    "commons-codec" % "commons-codec" % "1.10", 
    "com.amazonaws" % "aws-java-sdk" % "1.9.25"  
) 
} 
seq(Revolver.settings: _*) 

// put this in to eliminate deduplicate errors in sbt-assembly when making fat JAR 
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) => 
    { 
     case PathList(ps @ _*) if ps.last endsWith "ArgumentsProcessor.class" => MergeStrategy.first 
     case PathList(ps @ _*) if ps.last endsWith "MatchersBinder.class" => MergeStrategy.first 
     case "application.conf" => MergeStrategy.concat 
     case "unwanted.txt"  => MergeStrategy.discard 
     case x => old(x) 
    } 
} 

jarName in assembly := "theBigServer.jar" 
mainClass in assembly := Some("servletRunner.Boot") 
+0

Вы можете показать свой полный файл сборки sbt? Эта единственная строка 'jarName в assembly: =" x.jar "' не создает никаких проблем для меня. – sschaef

+0

Хорошо, теперь я включил весь файл build.sbt. – thund

+0

Все работает отлично для меня, вы можете поделиться всем своим проектом? – sschaef

ответ

0

Хорошо, установил ее - это, кажется, проблема возникла из того, как я установил SBT. Я установил его на linux mint 17, следуя руководству руководства пользователя scalasbt.orginstallation instructions (который на самом деле просто указывает unix, и я предположил, что для linux тоже.) Это вызвало проблемы, которые я видел выше. Затем я удалил и переустановил через apt-get, используя их Debian instructions, и теперь sbt отлично работает. Я не тратил больше времени на то, чтобы исправить мою ручную установку. Возможно, есть способ заставить его работать. Не знаю.

Смежные вопросы