Speed up your Maven AEM application build for AEM Cloud Manager using Gradle AEM Plugin.
A few months ago, AEM became publicly available as a Cloud Service. As a consequence, the future of the Gradle AEM Plugin (GAP) - a tool that drastically improves developer efficiency in AEM application development - became a little uncertain. This is because Cloud Manager, the flagship automation tool of AEM as a Cloud Service, does not support the Gradle build system. Only Maven is supported. We understand this choice, but a lot of people who actually have a chance to work with Gradle & GAP value those tools a lot. Build speed is n‑times faster, configuration capabilities are much richer due to the dynamic nature of the build script concept used in Gradle, in contrast to static Maven pom.xml files. The additional tools around AEM application development improve the developer's daily routine by automation. For example, content synchronization from and AEM instance takes seconds, not minutes, and downloaded JCR content is even normalized on-the-fly. All of the improvements designed especially for A Better AEM Developer Experience, which was the topic of our talk at the adaptTo() 2018 Conference :)
Whoever does not try will not find out.
That's what I'm often saying to myself and my colleagues when we are trying something completely new. It's hard to come up with new things. It's even more difficult to defend ideas. As an example of such an unusual idea could be an approach for addressing the question - how to improve the developer's experience when they are using AEM Cloud Manager enforcing usage of Maven build tool? As proposing just switching build system from Maven to Gradle is not an option, how about using them both? At first, it could look a bit controversial, but… after deeper investigation and tests, that combination has strong benefits.
The first approach identified is the dual-build. It is about mixing the two build systems, adding Gradle build files to existing AEM projects while keeping them independent from existing Maven build files.
The second, more unusual approach is about splitting Maven build execution into steps - executing Maven for one module at a time, one after another. Let's call it the hybrid-build.