Appendix A. Gradle Samples

Listed below are some of the stand-alone samples which are included in the Gradle distribution. You can find these samples in the GRADLE_HOME/samples directory of the distribution.

Table A.1. Samples included in the distribution

SampleDescription
announce

A project which uses the announce plugin

codeQuality

A project which uses the code quality plugin.

customBuildLanguage

This sample demonstrates how to add some custom elements to the build DSL. It also demonstrates the use of custom plug-ins to organize build logic.

customPlugin

A project which implements a custom plugin and task.

groovy/customizedLayout

Groovy project with a custom source layout

groovy/groovy-1.5.6

Groovy project using Groovy 1.5.6

groovy/groovy-1.6.7

Groovy project using Groovy 1.6.7

groovy/mixedJavaAndGroovy

Project containing a mix of Java and Groovy source

groovy/multiproject

Build made up of multiple Groovy projects. Also demonstrates how to exclude certain source files, and the use of a custom Groovy AST transformation.

groovy/quickstart

Groovy quickstart sample

java/base

Java base project

java/customizedLayout

Java project with a custom source layout

java/multiproject

This sample demonstrates how an application can be composed using multiple Java projects.

java/quickstart

Java quickstart project

java/withIntegrationTests

This sample demonstrates how to use a source set to add an integration test suite to a Java project.

maven/pomGeneration

Demonstrates how to deploy and install to a Maven repository. Also demonstrates how to deploy a javadoc JAR along with the main JAR, how to customize the contents of the generated POM, and how to deploy snapshots and releases to different repositories.

maven/quickstart

Demonstrates how to deploy and install artifacts to a Maven repository.

osgi

A project which builds an OSGi bundle

scala/customizedLayout

Scala project with a custom source layout

scala/mixedJavaAndScala

A project containing a mix of Java and Scala source.

scala/quickstart

Scala quickstart project

webApplication/customised

Web application with customized WAR contents.

webApplication/quickstart

Web application quickstart project

A.1. Sample customBuildLanguage

This sample demonstrates how to add some custom elements to the build DSL. It also demonstrates the use of custom plug-ins to organize build logic.

The build is composed of 2 types of projects. The first type of project represents a product, and the second represents a product module. Each product includes one or more product modules, and each product module may be included in multiple products. That is, there is a many-to-many relationship between these products and product modules. For each product, the build produces a ZIP containing the runtime classpath for each product module included in the product. The ZIP also contains some product-specific files.

The custom elements can be seen in the build script for the product projects (for example, basicEdition/build.gradle). Notice that the build script uses the product { } element. This is a custom element.

The build scripts of each project contain only declarative elements. The bulk of the work is done by 2 custom plug-ins found in buildSrc/src/main/groovy.

A.2. Sample java/multiproject

This sample demonstrates how an application can be composed using multiple Java projects.

This build creates a client-server application which is distributed as 2 archives. First, there is a client ZIP which includes an API JAR, which a 3rd party application would compile against, and a client runtime. Then, there is a server WAR which provides a web service.