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.
This software is licensed according to GNU GENERAL PUBLIC LICENSE - see license.txt .
Feel free to raise issues and make pull requests.
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.
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.
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)
- Support for creating multiple packages (i.e. zip files)
- Uploading to Ivy format repository
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
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
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
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)
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