How do I idiomatically structure a large build with Gradle 7.2+? (by jjohannes)

Idiomatic-gradle Alternatives

Similar projects and alternatives to idiomatic-gradle based on common topics and language

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better idiomatic-gradle alternative or higher similarity.

idiomatic-gradle reviews and mentions

Posts with mentions or reviews of idiomatic-gradle. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-13.
  • Android Developers Blog: Kotlin DSL is Now the Default for New Gradle Builds
    2 projects | /r/androiddev | 13 Apr 2023
    You should look into how and similar projects handle it (nowinandroid has a good set up as well).
  • just enough gradle
    2 projects | /r/androiddev | 4 Jan 2023
    And finally, look at the idiomatic gradle repo. There is also a free video series that goes with this Understanding Gradle – Video Series. There are lots of bad practices in gradle that will slow your builds down, like using allProjects {}
  • For builds: Gradle vs Maven vs IntelliJ
    3 projects | /r/Kotlin | 25 May 2022
    For a long-lived (aka - something you'll maintain and may grow) multi-module project, I'd suggest following the idiomatic gradle structure. But there's a lot to unpack there, so it may not be the ideal thing to start with. Once you grok it though, that structure scales incredibly well, and allows you to avoid duplicating lots of configuration (via 'precompiled script plugins', largely in the build-logic project in that repo), and make use of build caching without having to modify things.
    3 projects | /r/Kotlin | 25 May 2022
    I'd suggest getting rid of buildSrc, and just using build composition. I mentioned in another response, but check out for how to use precompiled script plugins that are connected to the project via includedBuilds. The only issues I've had with this are generally resolved by just running the sub-build independently to resolve any caching issues in the 'primary' build. A simple gradlew build --settings-file ./build-logic/settings.gradle.kts run will generally resolve that, and that issue seems largely because of the 'root' build being a peer or anscestor of the included build (due to legacy structure of the project, an issue the linked example repo does not have).
  • A note from our sponsor - Mergify | 27 Sep 2023
    Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free. Learn more →


Basic idiomatic-gradle repo stats
8 months ago

jjohannes/idiomatic-gradle is an open source project licensed under Apache License 2.0 which is an OSI approved license.

The primary programming language of idiomatic-gradle is Kotlin.

Collect and Analyze Billions of Data Points in Real Time
Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.