2017-06-29 2 views
0

J'ai un projet avec plusieurs modules, chaque module lui-même est l'application de démarrage de printemps. J'ai besoin de lancer toutes ces applications avec une seule commande (en utilisant .bat pour les fenêtres OU une course maven), comment puis-je le faire?démarrage de démarrage exécuter plusieurs applications

Structure du projet qui ressemble à ceci:

/base-app 
    /auth-service 
    /pom.xml - child pom 
    /eureka-service 
    /pom.xml 
    /zuul-service 
    /pom.xml 
pom.xml - main pom 

Je ne comprends pas du tout comment le faire avec Maven. Mais j'ai essayé de le faire avec le fichier .bat comme ceci:

call mvn -f eureka-service/pom.xml spring-boot:run 
call mvn -f zuul/pom.xml spring-boot:run 

Premier "appel" a bien fonctionné, mais le second a été ignoré.
J'ai besoin de cela pour démarrer rapidement tous mes services.

+1

Le deuxième appel, il semble que vous n'ayez pas le bon répertoire? 'zuul' vs' zuul-service' –

Répondre

4

Cela sent le monolithe partout. Je ne peux pas vraiment justifier l'utilisation d'un pom parent, dans un monde microservice (discutable). Ceci est juste mon opinion honnête, votre scénario pourrait être totalement différent. Cela dit, je crois que chacun des projets enfants (auth-service, euraka et zuul) crée ses propres artefacts (pots). Si oui, vous pouvez simplement faire java -jar sur chacune de ces commandes .bat ou shell.

+0

et qu'en est-il de spring-boot, y a-t-il un moyen de l'utiliser en utilisant maven? Je sais que ce n'est pas la meilleure idée, mais ce n'est pas la production et c'est nécessaire pour tester et faciliter le développement. – Evgenii

+0

@Evgenii. Si ce sont des applications Spring Boot, vous pouvez faire: mvn spring-boot: run Si vous avez besoin d'un seul script, vous devrez utiliser nohup ou quelque chose pour que chacune de ces commandes s'exécute dans son propre processus. –

0

Si vous exécutez chacun de vos services dans un récipient séparé Docker, Docker Compose fera ce que vous êtes à la recherche et mettre en place tous les services dans leurs conteneurs dans une commande avec:

docker-compose up 

Voir https://docs.docker.com/compose/