2017-05-22 1 views
0

Après les conseils du poste expliquant la basics of migrating to scalajs et this page à propos cross-compilations, j'ai décidé d'ajouter compilation croisée à ma bibliothèque autonome scala sans dépendance en faisant les modifications suivantes:Après la bibliothèque migration vers scalajs, publier local ne fonctionne pas

  • J'ai ajouté un fichier project/plugins.sbt avec le contenu
    addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.16")
  • J'ai ajouté scalaVersion in ThisBuild := "2.11.8" dans build.sbt parce que d'autre scalaVersion utilisait 2.10

J'ai également ajouté dans le build.sbt le contenu suivant pour faire en sorte que je peux garder la même structure de répertoire, puisque je n'ai pas certains fichiers pour la machine virtuelle Java ou pour Javascript:

lazy val root = project.in(file(".")). 
    aggregate(fooJS, fooJVM). 
    settings(
    publish := {}, 
    publishLocal := {} 
) 

lazy val foo = crossProject.crossType(CrossType.Pure).in(file(".")). 
    settings(version := "0.1"). 
    jvmSettings(
    // Add JVM-specific settings here 
). 
    jsSettings(
    // Add JS-specific settings here 
) 

lazy val fooJVM = foo.jvm 
lazy val fooJS = foo.js 

Mais maintenant, après avoir publié le projet localement en utilisant sbt publish-local les projets dépendant de cette bibliothèque ne fonctionnent plus, c'est-à-dire qu'ils ne voient pas les classes que cette bibliothèque offrait et provoquaient des erreurs. J'ai regardé dans .ivy2/local/.../foo/0.1/jars et le JAR est passé de 1 Mo à 1 Ko, donc les erreurs ont un sens. Cependant, comment puis-je m'assurer que le fichier jar JVM est compilé correctement?

D'autres informations

Le temps de pot ne change pas plus, il semble qu'il y avait eu des miscompilation. J'ai supprimé le cache .ivy2, mais maintenant sbt publish-local se termine toujours avec succès mais ne régénère pas les fichiers.

Répondre

0

Ok, j'ai trouvé la solution moi-même.

J'avais besoin de retirer le publishLocal := {} de la construction, et maintenant tous les projets selon ma bibliothèque fonctionnent bien.