ArchitectureSourceSetPolicy
First-class, declarative source-set architecture policy DSL.
Enforces platform-independence, package import/dependency restrictions, and Gradle source-set dependsOn hierarchy rules for Kotlin Multiplatform (KMP) and multi-source-set projects.
Example Usage:
architecture {
sourceSet("commonMain") {
mustBePlatformIndependent()
mustNotDependOn("android.**", "java.awt.**")
mustNotDependOnSourceSets("jvmMain", "androidMain", "iosMain")
}
sourceSet("androidMain") {
mayDependOn("android.**", "androidx.**")
}
}Properties
Functions
Restricts the platform package patterns the matched source set(s) may depend on. Any platform package reference outside of these patterns will trigger a violation.
Restricts the platform package patterns the matched source set(s) may depend on.
Requires the matched source set(s) to remain platform-independent by forbidding imports and symbol references to known platform packages (e.g. android.*, java.*, platform.*).
Forbids the matched source set(s) from importing or depending on the specified package patterns.
Forbids the matched source set(s) from depending on the specified source-set names in the Gradle model.