A better Developer Experience / building AEM applications using Gradle



Hi all!

I'd like to share with you alternative way of building AEM applications using Gradle instead of Maven. Within last few years I had a chance to test in a battle much quicker build, with many useful, unique features that were not available before, such us:

  • incremental Java code compiling,
  • caching built CRX packages based on change detection
  • fully automated development environment setup (environment as a code approach)
  • parallel multi instances deployment to many remote instances at once
  • embedded Vault tool to easy synchronize JCR repository with local files, copy content from one instance to another using RCP,
  • almost unlimited ways to compose CRX package from multiple JCR content roots, bundles without a need to restructure project (move files etc)
  • smart CRX package metadata files generation (even no need to provide any files like "properties.xml", common place for packages thumbnail, etc)
  • checking instance stability after CRX package deployment (build ends with success only if package is installed successfully and OSGi is stable)

Basing on my experience, Gradle builds are about 3-4 times faster than Maven builds, so you need to try it by yourself:

Good start points to discover its features within few minutes are example projects. First one is designed for application development (minimal), second one is for project development with stable and extensible structure and much more things potentially useful integrated by default.

I am very curious about your feedback. I'like to ask you about your experience while using this new approach. Personally, my life as AEM developer becomed more comfortable. Quicker build, much more smooth work and better focus on things to do. Don't you think?

Kind regards, Krystian





Thanks Tool is very stable right now so that now I am rather concentrated on sharing and making it even better by listening to the community needs. So I appreciate any thoughts, ideas here or reported on GitHub Issues · Cognifide/gradle-aem-plugin · GitHub  .