Skip to content

Latest commit

 

History

History

precompiled-script-plugin

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Gradle Precompiled Plugin

This directory contains examples and assignments with the focus on Gradle precompiled script plugins.

Often precompiled script plugin is used as a plugin reused in one project so that is located in buildSrc directory based on the Gradle convention. But precompiled script plugin can also be used as a standalone plugin in a independent project.

Module Description Resources
precompiled-script-plugin-assignment-done Script plugin transformed into precompiled script plugin. This is supported with groovy-gradle-plugin plugin. This way plugin can be reused in multiple subprojects. Gradle components can be extracted into separate classes. Precompiled plugin lecture

Resources

Examples

Public GitHub examples using precompiled Gradle script plugins:

Project Description
federated-api-model (buildSrc) This project uses 2 convention precompiled plugins packaged in buildSrc directory. First common-conventions plugin applies and configures java and jacoco plugin. While the second spring-boot-conventions plugin applies the first one and additionally sets up exclusion configuration for loggers and testing engine. Then spring-boot-conventions is used in an example project.
starter-boot (buildSrc) The project contains multiple Spring Boot starter like projects. I don't know how they are included in the builds, maybe as composed builds. Nonetheless they are interesting as they have defined and use dozen (More than 50!) of precompiled plugins defined in buildSrc folder. Their purpose is briefly described here. Actual usage of convention plugins is shown in an test-example project
QuiltMC (standalone) Unlike projects above this one doesn't include precompiled plugin in buildSrc folder, but it defines precompiled plugin as a standalone project. Plugin gets compiled and packaged as a binary plugin in a jar file. To be actually used in other projects it needs to be published to some repository or being applied as a composite build. Actual use of plugin can be found in another precompiled plugin qsl.module