2011-08-23 3 views
3

J'ai deux applications liées que je développe dans Scala. L'un est un moteur de traitement côté serveur construit en utilisant SBT et s'exécutant sans tête faisant un certain nombre crunching (sur un travail cron). L'autre est un site web écrit en Scala et fonctionnant sur le framework de jeu. J'ai un code que j'aimerais partager entre les deux, mais comme chacun d'entre eux (SBT et Play) a ses propres idées sur la structure des répertoires et comment construire des choses, je ne sais pas comment je devrais fais ceci. Je détesterais copier et coller les fichiers .scala - mais je ne tiens pas non plus à utiliser des liens sym et à les faire construire à partir des mêmes fichiers.Partage de sources/bibliothèques entre framework sbt et Scala

Si cela était possible, j'accepterais que les scripts Play exécutent SBT pour créer des bibliothèques selon les besoins. Si c'était le seul moyen alors je serais aussi OK avec l'utilisation de SBT pour construire des pots pour Play, puis les copier sur place. Mais je développe souvent les deux simultanément (ils font partie d'une application plus grande) et tout fonctionnerait beaucoup plus facilement s'ils étaient mis à jour ensemble. Est-ce même possible, ou s'il y a une autre technique plus simple qui me manque?

Merci, Alex

Répondre

6

Le seul moyen facile est de construire avec JARs SBT et faire jouer les utiliser.

sur la copie, vous avez 2 options:

  • Vous construisez manuellement et copiez-les dans le dossier libs en jeu (vous pouvez script pour le rendre moins ennuyeux)
  • Vous utilisez un référentiel personnalisé pour vos fichiers JAR (ala Nexus Repository) et utilisez Play dependencies.yml pour pointer vers ce repo et mettre à jour. Avec cela, vous devrez également exécuter souvent play sync --deps et modifier les versions, donc je ne suis pas sûr que cela ait trop de sens pendant le développement (cela a plus de sens une fois les JAR terminés)
+0

Merci pour le réponse rapide. J'entends dire que Play Scala envisage de passer à SBT. Vraisemblablement, cela pourrait rendre la tâche un peu plus intégrée? Mais en attendant, c'est bon de savoir que je ne suis pas totalement bête. –

Questions connexes