Facilitates custom Gradle wrappers construction

View on GitHub


This is an example of using custom Gradle distributions for projects with different setup - we create ‘library’ and ‘service’ distributions and a sample project which uses ‘service’.

Custom Distributions

custom distribution project configures two custom Gradle distribution - library and service. Both of them use shared setup.

Note: a cool feature of init scripts is that we can apply Gradle plugins from them. Unfortunately, it’s necessary to do that by specifying complete plugin class name - import by plugin id is not supported there (some old Gradle design bug).

Client Project

client project is configured to use the ‘service’ distribution and defines only bare minimum of the configuration.

In Action

  1. Build custom distribution
    pushd custom-distribution; ./gradlew build; popd
  2. Run the client project
    pushd client-project; ./gradlew bootRun; popd
  3. Call a web server server started by the client project and ensure that it works
     Hi there!