One can have an individual microservice as a standalone project with a distinct deployment/development process for each. This usually works in larger teams, but seldom in smaller teams. For this application, I have organized the code base as a collection of subprojects under one umbrella. Each subproject in a build has its own source directories, generates its own JAR file when you run packages, and, in general, works like any other project.
This setup is convenient in the sense that each project still has its own independence and is not impacted by the setup and dependencies of other projects in the build so it provides a good degree of independence and yet one could share common build-related files and common projects across projects if needed. For example, for maintenance purposes, we wish to use the same Play version across all our projects. In which case...