2010-01-12 4 views
1

Je suis nouveau dans la pile java/scala en général. Jusqu'à présent, j'ai une application scala relativement simple (pas une webapp) et construite avec maven2, et j'aimerais pouvoir déployer la sortie vers un ou plusieurs serveurs de production (ubuntu sur EC2, mais cela ne devrait pas Je suppose)?Déploiement de l'application scala simple (non-webapp) gérée avec maven

Mes questions principales sont: 1) Quelle est la meilleure façon d'obtenir tous les fichiers jars dépendants (tiers) installés sur le serveur de production? Maven s'occupe de les installer sur ma boîte de développement, comment cela fonctionne-t-il? 2) Je peux exécuter mon application avec mvn scala: run, mais quelle est la bonne façon de démarrer l'application en production? 3) Comment gérer les déploiements ultérieurs?

Tous les pointeurs/ressources seront appréciés! Merci beaucoup d'avance pour avoir aidé un noob! :)

+0

Est-ce que cet ascenseur, par hasard? Vous parlez des dépendances comme si vous ne saviez pas exactement ce qu'elles sont. –

+0

Je supposais juste qu'ils n'ont pas d'importance. Quelques paquets comme twitter4j, etc – ambivalence

Répondre

2

J'ai tendance à utiliser le Maven App Assembler plugin pour empaqueter des dépendances, mon propre code, et créer des scripts de démarrage. L'utilisation basique est décrite dans l'excellent Maven book de Sonatype. Pour plus de flexibilité, il peut générer des scripts Java Service Wrapper, qui permettent à l'application d'être exécutée soit comme une application de ligne de commande, soit comme un service Windows, soit comme un démon Unix.

Cette approche n'est pas spécifique aux applications Scala. Vous avez juste besoin de connaître la classe principale de votre application, par ex. sample.Main $ dans le code ci-dessous.

package sample 

object Main { 
    def main(args: Array[String]) = println("hello world") 
} 
1

La réponse de retronym ressemble à la meilleure solution, mais si vous voulez juste quelque chose que vous vraiment simple peut utiliser le plugin Maven assembly. Tout ce que vous faites est de l'ajouter en tant que plugin à pom.xml puis de faire mvn assembly:assembly et il vous construira un pot avec toutes vos dépendances (y compris scala lib) sans y entrer. Ainsi, vous pouvez simplement exécuter votre application avec java -cp my.jar MyMainClass.

Questions connexes