I work for a large enterprise and we are beginning to use gradle, I am hoping to greatly reduce the amount of copy/paste for build.gradle files moving forward. After watching the video on standardizing gradle for enterprise
It seemed that the best thing to do was to create a corporate binary plugin. The goals of this plugin are threefold:
-
apply the company standard plugins
a. spring-boot
b. artifactory
c. maven-publish
d. jacoco
e. sonarqube -
apply the company standard configurations for these plugins as default
a. use spring dependency management with the appropriate version of the spring-cloud BOM
b. define out artifactory urls, authentication schemes, etc
c. set up our jacoco reporting settings
d. ensure that the default setup for sonarqube includes everything we would expect. -
remove as much boilerplate as possible to make using the company standard tooling as simple as:
plugins {
id "companyname" version "1.0.0"
}
it would seem as though the two pass approach will make this difficult, as I cannot apply spring-boot or artifactory plugins without adding them to the classpath in the buildscript closure, which defeats the entire purpose of applying them with the plugin in the first place.
So I guess, before I spend too much more time investigating, testing, and failing, I want to know is this something that we can do with gradle? would using the milestone 2 of gradle 3 aid in accomplishing any of these tasks?
Any and all help is appreciated.