Wir entwickeln immer weniger monolithische Applikation und versuchen Verantwortungen in einzelnen Services umzusetzen. Diese Services müssen jedoch immer noch miteinander kommunizieren. Auch in der lokalen Entwicklung bin ich immer mal wieder auf diese Kommunikation angewiesen, um neue Features integrativ nachzuverfolgen. Diese wegzumocken reicht dann nicht. Bisher musste ich sämtliche involvierten Projekte in meiner Entwicklungsumgebung IntelliJ IDEA öffnen und dann jeweils eine vorgefertigte Run-Configuration (oder manchmal auch mehrere) starten. Das war ein ganz schönes Jonglieren mit IDEA Instanzen und bedurfte vieler Klicks zum Starten der einzelnen Configurations.

Einfacher geht es mit Compound Configurations von IntelliJ IDEA. Diese ermöglichen das Ausführen mehrerer Run-Configurations mit einem Klick. Im folgenden Bild zeige ich eine beispielhafte Configuration, die das parallele Starten von einigen Spring Boot Backends, eines npm-Scripts, einem Monitoring-System in Docker sowie DB und MessageBroker via Bash ermöglicht.

Es lassen sich auch wie hier Spring Boot Container aus anderen Projekten starten. Dafür habe ich jeweils Gradle Run-Configurations erstellt. Als Pfad wird der absolute Pfad des jeweiligen Projektes angegeben und als Task bootRun. Auch Spring Profile und andere Variablen lassen sich übergeben.