Clone wiki

holy-gradle-plugins / Home


This is a collection of Gradle plugins and some helper modules, which are primarily aimed at making it easier to develop modules with large numbers of artifacts (e.g. DLLs, static libs, header files) on Windows, using Visual Studio.

See the Holy Gradle Cookbook for common use-cases or the index for a alphabetical list of DSL defined by Holy Gradle plugins.

This software is licensed according to GNU GENERAL PUBLIC LICENSE - see license.txt .

Feel free to raise issues and make pull requests.

Version Information

Each delivered component of the Holy Gradle suite includes version information which tells you the source it was built from.

  • JAR files put it in META-INF/MANIFEST/MF.
  • The custom-gradle distribution puts it in the init.d/holy-gradle-init.gradle, and logs it at INFO level.
  • credential-store puts it in the Windows file properties of the generated EXE.

Custom-Gradle-Core plugin

The Custom-Gradle-Core Plugin is a default plugin that is automatically applied whenever you use the Custom-Gradle distribution and apply any other Holy Gradle plugin.

This plugin supports:

  • some useful standard tasks
  • 'prerequisites' DSL to help you specify prerequisites for difficult cases where a dependency can't easily be unpacked and must be manually installed e.g. Visual Studio, DirectX SDK.

Intrepid plugin

The Intrepid Plugin supports:

  • Source code dependencies
    • Retrieving source code repositories from SVN or Mercurial
    • Caching SVN and Hg credentials
    • Configurable options when publishing a module that has a source code dependency
    • Support for overriding a source code dependency and using pre-built artifacts instead
  • Packed dependencies
    • Retrieving dependencies consisting of many files into your workspace
    • Central cache for unpacked dependencies & symlink from workspace to central cache
    • Configurable symlinks from consumer module to multiple locations in unpacked dependency
    • Support for multiple versions of the same component (i.e. version conflicts)
  • Publishing
    • Support for creating multiple packages (i.e. zip files)
    • Uploading to Ivy format repository

DevEnv plugin

The DevEnv Plugin supports:

  • tasks for invoking DevEnv to build and clean a Visual Studio solution
  • sensible dependencies between modules in a multi-module workspace (i.e. a module which is a dependency of multiple modules will only be built once)
  • integration with intrepid plugin so that source code dependencies automatically configure build dependencies
  • additional configuration for:
    • specifying a solution file
    • specifying which version of DevEnv to use

My-Credentials plugin

The My-Credentials plugin supports:

  • secure storage of credentials using the Windows Credential Manager
  • methods to retrieve a username and password
  • a task to refresh credentials that are already cached
  • dialog box to request credentials from the user
  • time-out to prevent the dialog box permanently halting an autobuild machine

Unit-Test plugin

The Unit Test plugin supports:

  • DSL for defining your unit test processes
  • automatic definition of tasks for invoking your unit test processes
  • ability to run tests according to build dependencies, or independently per-project
  • DSL to define unit test 'flavours', defaulting to `Debug` and `Release`
  • automatic replacement of `<flavour>` and `<f>` in test definitions

Stamper plugin

The Stamper plugin supports:

  • 'stamping' information (such as version numbers) into text files
  • DSL for defining which files to stamp and how to stamp them (using regular expressions)

Artifactory-Manager plugin

The Artifactory Manager plugin supports:

  • deleting artifacts from an Artifactory server according to rules such as:
    • delete anything older than X days/weeks/months
    • delete anything older than Y days/weeks/months but keep one version per day/week/month