This MR converts our build system from Maven to Gradle.
The advantages of doing this are:
Gradle has more performant builds
Gradle is much easier to read and understand
Gradle tasks are more easily modifiable
Most importantly: The team likes Gradle 😄
Things I know are left to do:
[x] Figure out how to make the docs
[x] Update the .gitignore for Gradle
[x] Make jacoco work for code coverage.
 - It's mostly wired in, I just wasn't sure if we include IT tests and SDK tests in the coverage or not? [Note: they are not included in coverage. Pipeline only runs unit tests]
[x] Make sure the IT tests work (should be able to run ./gradlew clean integrationTest
Note: They work, but LoggingIT and OAuthFlowImplIT are currently broken due to my previous MR
[x] Make sure the SDK tests work (should be able to run ./gradlew clean sdkTest
[x] Ensure everything else in the POM is covered. Make sure we support anything the maven plugins were doing
[x] Need to sign artifacts
[x] Add details from the POM's developer tag
[x] Check if we need nexus plugin
This is for if we want to deploy to a private Nexus repo for SNAPSHOT deploys. We do not currently do this
This MR converts our build system from Maven to Gradle.
The advantages of doing this are:
Things I know are left to do:
./gradlew clean integrationTest
LoggingIT
andOAuthFlowImplIT
are currently broken due to my previous MR./gradlew clean sdkTest
developer
tag.maven.xml
works