Skip to content

Cerberus now builds on Gradle

Choose a tag to compare

@aravind666 aravind666 released this 26 Aug 11:52
cf3355b

Maven's POM keeps growing along with the project, the moment POM files grow big it becomes harder to maintain because XML by itself is not meant for humans AFAIK it is meant for someone else who has interfaces to defined to interpret it :) . I saw lots of advantages in using Gradle some very few and cool ones are

  1. Gradle is one such beautiful thing which provides nice DSL to write build tasks by helping me with conventions as well as giving me power to overide it.
  2. The plugin ecosystem of Gradle is simply amazing, and also it is too easy to build one for ourself if required or consume some thing from mavencentral as well in our gradle builds
  3. Gradle has some general support , for building C++
  4. Unlike maven which requires some sort of full compilation, Now I can ask people to just clone and run using gradle and in that mode I can do some language agnostic stuff. For eg.. now post doing this change you can run
    ./gradlew run from the root directory which simply runs the application just like running JAR.
  5. It allows me to watch my tests continuously https://docs.gradle.org/current/userguide/command_line_interface.html#sec:continuous_build
  6. Last but not least, Since Gradle allows me to write build tasks using a full fledged Groovy language, Just Incase I hit a roadblock in future worst case I can resolve it by adding some another level of indirection, which is somewhat not so easy in Maven.

We also did some more feature enhancements listed below

  1. #23
  2. #15

We also added some more Clean code practices

  1. We now do Checkstyle scan even for test code
  2. We gate for cyclomatic complexity 4
  3. We gate for Error prone code
  4. We now run spotbugs in CI/CD previously it was just at local

Some Enhancements to Documentation

  1. Docs folder md files now have better structure, previously it had some formatting issues.