$ show stevesaliman/gradle-properties-plugin
This repository contains a Gradle plugin that enhances Gradle's built-in property loading mechanism. The plugin adds support for environment-specific property files (gradle-${environmentName}.properties) and user-specific property files (gradle-${gradleUserName}.properties), modifies the property processing order, creates filter tokens for file filtering, and provides task-level methods for validating required and recommended properties. It is implemented in Groovy and follows standard Gradle plugin patterns, with comprehensive test coverage verifying its behavior in various scenarios including multi-project builds.
The LLM identified 2 files worth highlighting for reuse:
A simple enumeration defining file types (REQUIRED, OPTIONAL, ENVIRONMENT) used by the plugin to categorize property files. This isolated, self-contained component demonstrates clean enum usage with semantic meaning and could be easily reused in other projects requiring file type classification.
A lightweight data class wrapping a property file with its filename, file type, and flag indicating whether it can contain system properties. This component exemplifies the value object pattern, is completely decoupled from Gradle-specific APIs, and could be extracted to any Java/Groovy project needing to associate metadata with files.