scala sbt cross-compiling scala-2.11

Al intentar realizar una compilación cruzada de un proyecto a Scala 2.11 se produce un error al "error al cargar Objeto, falta de dependencia" en el espejo del compilador ".



sbt cross-compiling (5)

El problema es muy simple: en tu Build.scala , casi lo hiciste bien, pero en el proyecto de commons habías reemplazado las commonDependencies predeterminadas. Por defecto, contiene dependencia a scala-library.

Esta pieza de código

lazy val common = Project( id = commonName, base = file(commonName), settings = Configuration.baseSettings ++ Seq( name := commonName, libraryDependencies := Configuration.commonDependencies // #1 ) )

en el elemento marcado como #1 debería tener

libraryDependencies ++= Configuration.commonDependencies

PD. Te envié una solicitud de extracción con la solución.

Estoy intentando compilar mi proyecto para Scala 2.10 y 2.11 para que pueda lanzar versiones para ambas versiones de scala, pero cada vez que intento hacerlo falla con el siguiente mensaje:

#( 04/26/14@ 7:40 )( mauricio@Mauricios-MacBook-Pro ):~/projects/scala/[email protected]✔ sbt compile [info] Loading project definition from /Users/mauricio/projects/scala/postgresql-netty/project [info] Set current project to db-async-base (in build file:/Users/mauricio/projects/scala/postgresql-netty/) [info] Compiling 61 Scala sources and 1 Java source to /Users/mauricio/projects/scala/postgresql-netty/db-async-common/target/scala-2.11/classes... [error] error while loading Object, Missing dependency ''object scala in compiler mirror'', required by /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/rt.jar(java/lang/Object.class) scala.reflect.internal.MissingRequirementError: object scala in compiler mirror not found. at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:17) at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:18) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:53) at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:66) at scala.reflect.internal.Mirrors$RootsBase.getPackage(Mirrors.scala:173) at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackage$lzycompute(Definitions.scala:161) at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackage(Definitions.scala:161) at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackageClass$lzycompute(Definitions.scala:162) at scala.reflect.internal.Definitions$DefinitionsClass.ScalaPackageClass(Definitions.scala:162) at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1375) at scala.tools.nsc.Global$Run.<init>(Global.scala:1278) at xsbt.CachedCompiler0$$anon$2.<init>(CompilerInterface.scala:113) at xsbt.CachedCompiler0.run(CompilerInterface.scala:113) at xsbt.CachedCompiler0.run(CompilerInterface.scala:99) at xsbt.CompilerInterface.run(CompilerInterface.scala:27) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:102) at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:48) at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41) at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:99) at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:99) at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:99) at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:166) at sbt.compiler.AggressiveCompile$$anonfun$3.compileScala$1(AggressiveCompile.scala:98) at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:143) at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:87) at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:39) at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:37) at sbt.inc.IncrementalCommon.cycle(Incremental.scala:99) at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:38) at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:37) at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:65) at sbt.inc.Incremental$.compile(Incremental.scala:37) at sbt.inc.IncrementalCompile$.apply(Compile.scala:27) at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:157) at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:71) at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:46) at sbt.Compiler$.apply(Compiler.scala:75) at sbt.Compiler$.apply(Compiler.scala:66) at sbt.Defaults$.sbt$Defaults$$compileTaskImpl(Defaults.scala:743) at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:735) at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:735) at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42) at sbt.std.Transform$$anon$4.work(System.scala:64) at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) at sbt.Execute.work(Execute.scala:244) at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) [error] (db-async-common/compile:compile) scala.reflect.internal.MissingRequirementError: object scala in compiler mirror not found. [error] Total time: 2 s, completed Apr 26, 2014 7:43:49 PM

Mi archivo de compilación se ve así:

import sbt._ import Keys._ object ProjectBuild extends Build { val commonName = "db-async-common" val postgresqlName = "postgresql-async" val mysqlName = "mysql-async" lazy val root = Project( id = "db-async-base", base = file("."), settings = Configuration.baseSettings, aggregate = Seq(common, postgresql, mysql) ) lazy val common = Project( id = commonName, base = file(commonName), settings = Configuration.baseSettings ++ Seq( name := commonName, libraryDependencies := Configuration.commonDependencies ) ) lazy val postgresql = Project( id = postgresqlName, base = file(postgresqlName), settings = Configuration.baseSettings ++ Seq( name := postgresqlName, libraryDependencies ++= Configuration.implementationDependencies ) ) aggregate (common) dependsOn (common) lazy val mysql = Project( id = mysqlName, base = file(mysqlName), settings = Configuration.baseSettings ++ Seq( name := mysqlName, libraryDependencies ++= Configuration.implementationDependencies ) ) aggregate (common) dependsOn (common) } object Configuration { val commonVersion = "0.2.13" val projectScalaVersion = "2.11.0" val specs2Dependency = "org.specs2" %% "specs2" % "2.3.11" % "test" val logbackDependency = "ch.qos.logback" % "logback-classic" % "1.0.13" % "test" val commonDependencies = Seq( "org.slf4j" % "slf4j-api" % "1.7.5", "joda-time" % "joda-time" % "2.3", "org.joda" % "joda-convert" % "1.5", "io.netty" % "netty-all" % "4.0.18.Final", "org.javassist" % "javassist" % "3.18.1-GA", specs2Dependency, logbackDependency ) val implementationDependencies = Seq( specs2Dependency, logbackDependency ) val baseSettings = Defaults.defaultSettings ++ Seq( scalacOptions := Opts.compile.encoding("UTF8") :+ Opts.compile.deprecation :+ Opts.compile.unchecked :+ "-feature" , scalacOptions in doc := Seq("-doc-external-doc:scala=http://www.scala-lang.org/archives/downloads/distrib/files/nightly/docs/library/"), scalaVersion := projectScalaVersion, crossScalaVersions := Seq(projectScalaVersion, "2.10.4"), javacOptions := Seq("-source", "1.6", "-target", "1.6", "-encoding", "UTF8"), organization := "com.github.mauricio", version := commonVersion, parallelExecution := false, publishArtifact in Test := false, publishMavenStyle := true, pomIncludeRepository := { _ => false }, publishTo <<= version { v: String => val nexus = "https://oss.sonatype.org/" if (v.trim.endsWith("SNAPSHOT")) Some("snapshots" at nexus + "content/repositories/snapshots") else Some("releases" at nexus + "service/local/staging/deploy/maven2") }, pomExtra := ( <url>https://github.com/mauricio/postgresql-async</url> <licenses> <license> <name>APACHE-2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0</url> <distribution>repo</distribution> </license> </licenses> <scm> <url>[email protected]:mauricio/postgresql-netty.git</url> <connection>scm:git:[email protected]:mauricio/postgresql-netty.git</connection> </scm> <developers> <developer> <id>mauricio</id> <name>Maurício Linhares</name> <url>https://github.com/mauricio</url> </developer> </developers> ) ) }

Y si quieres sacar la fuente para verificar que está en esta rama en Github .

Cualquier información sobre tratar de arreglar esto sería muy útil.


En Build.scala , agregaría autoScalaLibrary := true :

lazy val common = Project( id = commonName, base = file(commonName), settings = Configuration.baseSettings ++ Seq( ... autoScalaLibrary := true, ... ) )


Obtuve este error al intentar usar Oracle Java 9 jvm en Ubuntu con sbt. Sin embargo, el uso de Java 8 jvm funcionó para mí.


Este problema se solucionó cuando usé intellij, al cerrar el proyecto y volver a importarlo, y al seleccionar sbt como el sistema de compilación en la configuración.

¿Por qué oh por qué elegí SBT? Ahora estoy atascado con un sistema de compilación muy frágil. Gracias a Dios que, al menos, intelliy lo hace bien.

Versión sbt: 0.13.15

Versión scala: 2.12.1


Creo que respondiste antes de tus preguntas La construcción del proyecto Multimodule con SBT rompe con un extraño error

En esta compilación, agregue una línea "org.scala-lang" % "scala-library" % projectScalaVersion,

val commonDependencies = Seq( .. "org.joda" % "joda-convert" % "1.5", "org.scala-lang" % "scala-library" % projectScalaVersion, "io.netty" % "netty-all" % "4.0.18.Final", ... )