Part IV. Extending the build

Table of Contents

40. Writing Custom Task Classes
40.1. Packaging a task class
40.2. Writing a simple task class
40.3. A standalone project
40.4. Incremental tasks
40.5. The Worker API
40.6. Re-using logic between task classes
41. Writing Custom Plugins
41.1. Packaging a plugin
41.2. Writing a simple plugin
41.3. Making the plugin configurable
41.4. Working with files in custom tasks and plugins
41.5. Mapping extension properties to task properties
41.6. A standalone project
41.7. Providing a configuration DSL for the plugin
42. The Java Gradle Plugin Development Plugin
42.1. Usage
43. Organizing Build Logic
43.1. Inherited properties and methods
43.2. Injected configuration
43.3. Configuring the project using an external build script
43.4. Build sources in the buildSrc project
43.5. Running another Gradle build from a build
43.6. External dependencies for the build script
43.7. Ant optional dependencies
43.8. Summary
44. Lazy Configuration
44.1. Lazy properties
44.2. Creating a Property or Provider
44.3. Working with files and Providers
44.4. Working with task dependencies and Providers
44.5. Working with collection Providers
44.6. Guidelines
44.7. Future development
44.8. Provider API Quick Reference
45. Initialization Scripts
45.1. Basic usage
45.2. Using an init script
45.3. Writing an init script
45.4. External dependencies for the init script
45.5. Init script plugins
46. The Gradle TestKit
46.1. Usage
46.2. Functional testing with the Gradle runner
46.3. Getting the plugin-under-test into the test build
46.4. Controlling the build environment
46.5. The Gradle version used to test
46.6. Debugging build logic
46.7. Testing with the Build Cache