You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nowinandroid/build-logic
Jolanda Verhoef 68dbf8c6e1
Merge pull request #177 from oheyadam/aa/included-build-gradle-properties
2 years ago
..
convention Use collectAsStateWithLifecycle to safely collect uiState (#166) 2 years ago
gradle/wrapper Add duplicate Gradle wrapper to included build 3 years ago
README.md Update build-logic README.md 3 years ago
gradle.properties Add a gradle.properties file to the build-logic project 2 years ago
settings.gradle.kts Setup convention plugins base 3 years ago

README.md

Convention Plugins

The build-logic folder defines project-specific convention plugins, used to keep a single source of truth for common module configurations.

This approach is heavily based on https://developer.squareup.com/blog/herding-elephants/ and https://github.com/jjohannes/idiomatic-gradle.

By setting up convention plugins in build-logic, we can avoid duplicated build script setup, messy subproject configurations, without the pitfalls of the buildSrc directory.

build-logic is an included build, as configured in the root settings.gradle.kts.

Inside build-logic is a convention module, which defines a set of plugins that all normal modules can use to configure themselves.

build-logic also includes a set of Kotlin files used to share logic between plugins themselves, which is most useful for configuring Android components (libraries vs applications) with shared code.

These plugins are additive and composable, and try to only accomplish a single responsibility. Modules can then pick and choose the configurations they need. If there is one-off logic for a module without shared code, it's preferable to define that directly in the module's build.gradle, as opposed to creating a convention plugin with module-specific setup.

Current list of convention plugins: