Build: Introduce global implicitDependencies configuration

It is used to pre-download all dependencies and check that
verification-metadata.xml is up-to-date
 #KTI-72
This commit is contained in:
Vyacheslav Gerasimov
2023-05-23 10:47:32 +02:00
committed by Space Team
parent 4a66279f00
commit 7c1ffc4eb2
2 changed files with 14 additions and 22 deletions
@@ -30,6 +30,7 @@ dependencies {
project.configureJvmDefaultToolchain() project.configureJvmDefaultToolchain()
project.addEmbeddedConfigurations() project.addEmbeddedConfigurations()
project.addImplicitDependenciesConfiguration()
project.configureJavaCompile() project.configureJavaCompile()
project.configureJavaBasePlugin() project.configureJavaBasePlugin()
project.configureKotlinCompilationOptions() project.configureKotlinCompilationOptions()
@@ -54,6 +55,13 @@ afterEvaluate {
} }
} }
fun Project.addImplicitDependenciesConfiguration() {
configurations.maybeCreate("implicitDependencies").apply {
isCanBeConsumed = false
isCanBeResolved = false
}
}
fun Project.addEmbeddedConfigurations() { fun Project.addEmbeddedConfigurations() {
configurations.maybeCreate("embedded").apply { configurations.maybeCreate("embedded").apply {
isCanBeConsumed = false isCanBeConsumed = false
+6 -22
View File
@@ -15,30 +15,14 @@ import org.gradle.kotlin.dsl.accessors.runtime.addDependencyTo
import org.gradle.kotlin.dsl.accessors.runtime.addExternalModuleDependencyTo import org.gradle.kotlin.dsl.accessors.runtime.addExternalModuleDependencyTo
import org.gradle.kotlin.dsl.add import org.gradle.kotlin.dsl.add
val NamedDomainObjectContainer<Configuration>.embedded: NamedDomainObjectProvider<Configuration> get() = named("embedded") val NamedDomainObjectContainer<Configuration>.embedded: NamedDomainObjectProvider<Configuration>
get() = named("embedded")
fun DependencyHandler.embedded(dependencyNotation: Any): Dependency? = fun DependencyHandler.embedded(dependencyNotation: Any): Dependency? =
add("embedded", dependencyNotation) add("embedded", dependencyNotation)
fun DependencyHandler.embedded( val NamedDomainObjectContainer<Configuration>.implicitDependencies: NamedDomainObjectProvider<Configuration>
dependencyNotation: String, get() = named("implicitDependencies")
dependencyConfiguration: Action<ExternalModuleDependency>
): ExternalModuleDependency =
addDependencyTo(this, "embedded", dependencyNotation, dependencyConfiguration)
fun DependencyHandler.embedded( fun DependencyHandler.implicitDependencies(dependencyNotation: Any): Dependency? =
group: String, add("implicitDependencies", dependencyNotation)
name: String,
version: String? = null,
configuration: String? = null,
classifier: String? = null,
ext: String? = null,
dependencyConfiguration: Action<ExternalModuleDependency>? = null
): ExternalModuleDependency = addExternalModuleDependencyTo(
this, "embedded", group, name, version, configuration, classifier, ext, dependencyConfiguration
)
fun <T : ModuleDependency> DependencyHandler.embedded(
dependency: T,
dependencyConfiguration: T.() -> Unit
): T = add("embedded", dependency, dependencyConfiguration)