Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/microservices-patterns/ftgo-application/llms.txt

Use this file to discover all available pages before exploring further.

The FTGO application is a multi-module Gradle project. Each microservice lives in its own Gradle submodule under the repository root. This page walks you through the two build steps required before you can start the application, explains how to build a single service in isolation, and describes the Gradle wrapper so you do not need a local Gradle installation.

Before you start

Make sure you have completed the steps on the Prerequisites page. You need Java 8 or later and an internet connection so Gradle can download dependencies from Maven Central and the Eventuate snapshot repository on the first build.

Build steps

1

Build the Spring Cloud Contracts

Spring Cloud Contracts must be published to the local build repository before the service tests can consume them. Run this command from the repository root:
./gradlew buildContracts
This task discovers every subproject whose name ends in -contracts, then runs the publish task for each one. The published artifacts land in build/repo/ inside the project root, which is already listed as a repository in build.gradle.
This step is required. Skipping it will cause compilation errors in the service modules that depend on the generated contract stubs.
2

Assemble all services

Once the contracts are published, build every service and gateway JAR:
./gradlew assemble
Gradle resolves dependencies, compiles all subprojects, and packages each Spring Boot service into a runnable JAR. The sourceCompatibility and targetCompatibility for every subproject are set to Java 8.

Building a single service

If you are working on one service and want a faster feedback loop, you can build only that submodule. From the repository root, prefix the task with the subproject name:
./gradlew :ftgo-order-service:assemble
Replace ftgo-order-service with the name of whichever module you want to build. The available service modules are listed in settings.gradle:
  • ftgo-consumer-service
  • ftgo-order-service
  • ftgo-kitchen-service
  • ftgo-restaurant-service
  • ftgo-accounting-service
  • ftgo-order-history-service
  • ftgo-delivery-service
  • ftgo-api-gateway

Gradle wrapper

The repository ships with the Gradle wrapper (gradlew / gradlew.bat), so you do not need to install Gradle separately. The wrapper downloads the correct Gradle version automatically on the first invocation. Always use ./gradlew rather than a system-installed gradle binary to ensure you use the version the project was tested with.
Docker images for each service are built during composeUp, not during assemble. The assemble step only produces the JARs that are later copied into the Docker images.

Build docs developers (and LLMs) love