[Gradle, JVM] Don't create deprecated compile/runtime configurations

Gradle also removes these configurations in 7.0. See gradle/gradle@2cb45cdbd0
#KT-44462 Fixed
This commit is contained in:
Alexander Likhachev
2021-01-25 22:29:50 +03:00
parent ef458b20e1
commit 683bd0ed38
3 changed files with 32 additions and 33 deletions
@@ -165,9 +165,9 @@ class VariantAwareDependenciesIT : BaseGradleIT() {
"\n" + """ "\n" + """
dependencies { dependencies {
jvm6Implementation project(':${innerJvmProject.projectName}') jvm6Implementation project(':${innerJvmProject.projectName}')
jvm6TestRuntime project(':${innerJvmProject.projectName}') jvm6TestRuntimeOnly project(':${innerJvmProject.projectName}')
nodeJsImplementation project(':${innerJsProject.projectName}') nodeJsImplementation project(':${innerJsProject.projectName}')
nodeJsTestRuntime project(':${innerJsProject.projectName}') nodeJsTestRuntimeOnly project(':${innerJsProject.projectName}')
} }
""".trimIndent() """.trimIndent()
) )
@@ -184,12 +184,8 @@ class VariantAwareDependenciesIT : BaseGradleIT() {
with(outerProject) { with(outerProject) {
embedProject(innerProject) embedProject(innerProject)
gradleBuildScript().appendText(
"\nconfigurations['jvm6TestRuntime'].canBeConsumed = true"
)
gradleBuildScript(innerProject.projectName).appendText( gradleBuildScript(innerProject.projectName).appendText(
"\ndependencies { testImplementation project(path: ':', configuration: 'jvm6TestRuntime') }" "\ndependencies { testImplementation project(path: ':', configuration: 'jvm6RuntimeElements') }"
) )
testResolveAllConfigurations(innerProject.projectName) { testResolveAllConfigurations(innerProject.projectName) {
@@ -171,7 +171,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
val mainCompilation = target.compilations.maybeCreate(KotlinCompilation.MAIN_COMPILATION_NAME) val mainCompilation = target.compilations.maybeCreate(KotlinCompilation.MAIN_COMPILATION_NAME)
val compileConfiguration = configurations.maybeCreate(mainCompilation.deprecatedCompileConfigurationName) val compileConfiguration = configurations.findByName(mainCompilation.deprecatedCompileConfigurationName)
val implementationConfiguration = configurations.maybeCreate(mainCompilation.implementationConfigurationName) val implementationConfiguration = configurations.maybeCreate(mainCompilation.implementationConfigurationName)
val runtimeOnlyConfiguration = configurations.maybeCreate(mainCompilation.runtimeOnlyConfigurationName) val runtimeOnlyConfiguration = configurations.maybeCreate(mainCompilation.runtimeOnlyConfigurationName)
@@ -184,8 +184,8 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
attributes.attribute<Usage>(USAGE_ATTRIBUTE, KotlinUsages.producerApiUsage(target)) attributes.attribute<Usage>(USAGE_ATTRIBUTE, KotlinUsages.producerApiUsage(target))
extendsFrom(configurations.maybeCreate(mainCompilation.apiConfigurationName)) extendsFrom(configurations.maybeCreate(mainCompilation.apiConfigurationName))
if (mainCompilation is KotlinCompilationToRunnableFiles) { if (mainCompilation is KotlinCompilationToRunnableFiles) {
val runtimeConfiguration = configurations.maybeCreate(mainCompilation.deprecatedRuntimeConfigurationName) val runtimeConfiguration = configurations.findByName(mainCompilation.deprecatedRuntimeConfigurationName)
extendsFrom(runtimeConfiguration) runtimeConfiguration?.let { extendsFrom(it) }
} }
usesPlatformOf(target) usesPlatformOf(target)
setupAsPublicConfigurationIfSupported(target) setupAsPublicConfigurationIfSupported(target)
@@ -198,8 +198,9 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
isCanBeConsumed = true isCanBeConsumed = true
isCanBeResolved = false isCanBeResolved = false
attributes.attribute<Usage>(USAGE_ATTRIBUTE, KotlinUsages.producerRuntimeUsage(target)) attributes.attribute<Usage>(USAGE_ATTRIBUTE, KotlinUsages.producerRuntimeUsage(target))
val runtimeConfiguration = configurations.maybeCreate(mainCompilation.deprecatedRuntimeConfigurationName) val runtimeConfiguration = configurations.findByName(mainCompilation.deprecatedRuntimeConfigurationName)
extendsFrom(implementationConfiguration, runtimeOnlyConfiguration, runtimeConfiguration) extendsFrom(implementationConfiguration, runtimeOnlyConfiguration)
runtimeConfiguration?.let { extendsFrom(it) }
usesPlatformOf(target) usesPlatformOf(target)
setupAsPublicConfigurationIfSupported(target) setupAsPublicConfigurationIfSupported(target)
} }
@@ -210,18 +211,18 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
if (createTestCompilation) { if (createTestCompilation) {
val testCompilation = target.compilations.getByName(KotlinCompilation.TEST_COMPILATION_NAME) val testCompilation = target.compilations.getByName(KotlinCompilation.TEST_COMPILATION_NAME)
val compileTestsConfiguration = configurations.maybeCreate(testCompilation.deprecatedCompileConfigurationName) val compileTestsConfiguration = configurations.findByName(testCompilation.deprecatedCompileConfigurationName)
val testImplementationConfiguration = configurations.maybeCreate(testCompilation.implementationConfigurationName) val testImplementationConfiguration = configurations.maybeCreate(testCompilation.implementationConfigurationName)
val testRuntimeOnlyConfiguration = configurations.maybeCreate(testCompilation.runtimeOnlyConfigurationName) val testRuntimeOnlyConfiguration = configurations.maybeCreate(testCompilation.runtimeOnlyConfigurationName)
compileTestsConfiguration.extendsFrom(compileConfiguration) compileConfiguration?.let { compileTestsConfiguration?.extendsFrom(it) }
testImplementationConfiguration.extendsFrom(implementationConfiguration) testImplementationConfiguration.extendsFrom(implementationConfiguration)
testRuntimeOnlyConfiguration.extendsFrom(runtimeOnlyConfiguration) testRuntimeOnlyConfiguration.extendsFrom(runtimeOnlyConfiguration)
if (mainCompilation is KotlinCompilationToRunnableFiles && testCompilation is KotlinCompilationToRunnableFiles) { if (mainCompilation is KotlinCompilationToRunnableFiles && testCompilation is KotlinCompilationToRunnableFiles) {
val runtimeConfiguration = configurations.maybeCreate(mainCompilation.deprecatedRuntimeConfigurationName) val runtimeConfiguration = configurations.findByName(mainCompilation.deprecatedRuntimeConfigurationName)
val testRuntimeConfiguration = configurations.maybeCreate(testCompilation.deprecatedRuntimeConfigurationName) val testRuntimeConfiguration = configurations.findByName(testCompilation.deprecatedRuntimeConfigurationName)
testRuntimeConfiguration.extendsFrom(runtimeConfiguration) runtimeConfiguration?.let { testRuntimeConfiguration?.extendsFrom(it) }
} }
} }
} }
@@ -248,8 +249,8 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
if (createTestCompilation) { if (createTestCompilation) {
val testCompilation = target.compilations.getByName(KotlinCompilation.TEST_COMPILATION_NAME) val testCompilation = target.compilations.getByName(KotlinCompilation.TEST_COMPILATION_NAME)
if (testCompilation is KotlinCompilationToRunnableFiles) { if (testCompilation is KotlinCompilationToRunnableFiles) {
addDependsOnTaskInOtherProjects(project, buildNeeded, true, testCompilation.deprecatedRuntimeConfigurationName) addDependsOnTaskInOtherProjects(project, buildNeeded, true, testCompilation.runtimeDependencyConfigurationName)
addDependsOnTaskInOtherProjects(project, buildDependent, false, testCompilation.deprecatedRuntimeConfigurationName) addDependsOnTaskInOtherProjects(project, buildDependent, false, testCompilation.runtimeDependencyConfigurationName)
} }
} }
} }
@@ -271,7 +272,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
val target = compilation.target val target = compilation.target
val configurations = target.project.configurations val configurations = target.project.configurations
val compileConfiguration = configurations.maybeCreate(compilation.deprecatedCompileConfigurationName).apply { val compileConfiguration = configurations.findByName(compilation.deprecatedCompileConfigurationName)?.apply {
isCanBeConsumed = false isCanBeConsumed = false
setupAsLocalTargetSpecificConfigurationIfSupported(target) setupAsLocalTargetSpecificConfigurationIfSupported(target)
isVisible = false isVisible = false
@@ -280,7 +281,7 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
} }
val apiConfiguration = configurations.maybeCreate(compilation.apiConfigurationName).apply { val apiConfiguration = configurations.maybeCreate(compilation.apiConfigurationName).apply {
extendsFrom(compileConfiguration) compileConfiguration?.let { extendsFrom(it) }
isVisible = false isVisible = false
isCanBeConsumed = false isCanBeConsumed = false
isCanBeResolved = false isCanBeResolved = false
@@ -288,7 +289,8 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
} }
val implementationConfiguration = configurations.maybeCreate(compilation.implementationConfigurationName).apply { val implementationConfiguration = configurations.maybeCreate(compilation.implementationConfigurationName).apply {
extendsFrom(compileConfiguration, apiConfiguration) extendsFrom(apiConfiguration)
compileConfiguration?.let { extendsFrom(it) }
isVisible = false isVisible = false
isCanBeConsumed = false isCanBeConsumed = false
isCanBeResolved = false isCanBeResolved = false
@@ -313,10 +315,10 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
} }
if (compilation is KotlinCompilationToRunnableFiles) { if (compilation is KotlinCompilationToRunnableFiles) {
val runtimeConfiguration = configurations.maybeCreate(compilation.deprecatedRuntimeConfigurationName).apply { val runtimeConfiguration = configurations.findByName(compilation.deprecatedRuntimeConfigurationName)?.apply {
isCanBeConsumed = false isCanBeConsumed = false
setupAsLocalTargetSpecificConfigurationIfSupported(target) setupAsLocalTargetSpecificConfigurationIfSupported(target)
extendsFrom(compileConfiguration) compileConfiguration?.let { extendsFrom(it) }
isVisible = false isVisible = false
isCanBeResolved = true // Needed for IDE import isCanBeResolved = true // Needed for IDE import
description = description =
@@ -331,7 +333,8 @@ abstract class AbstractKotlinTargetConfigurator<KotlinTargetType : KotlinTarget>
} }
val runtimeClasspathConfiguration = configurations.maybeCreate(compilation.runtimeDependencyConfigurationName).apply { val runtimeClasspathConfiguration = configurations.maybeCreate(compilation.runtimeDependencyConfigurationName).apply {
extendsFrom(runtimeOnlyConfiguration, runtimeConfiguration, implementationConfiguration) extendsFrom(runtimeOnlyConfiguration, implementationConfiguration)
runtimeConfiguration?.let { extendsFrom(it) }
usesPlatformOf(target) usesPlatformOf(target)
isVisible = false isVisible = false
isCanBeConsumed = false isCanBeConsumed = false
@@ -411,9 +414,9 @@ abstract class KotlinOnlyTargetConfigurator<KotlinCompilationType : KotlinCompil
addJarIfNoArtifactsPresent(apiElementsConfiguration, jarArtifact) addJarIfNoArtifactsPresent(apiElementsConfiguration, jarArtifact)
if (mainCompilation is KotlinCompilationToRunnableFiles<*>) { if (mainCompilation is KotlinCompilationToRunnableFiles<*>) {
val runtimeConfiguration = project.configurations.getByName(mainCompilation.deprecatedRuntimeConfigurationName) val runtimeConfiguration = project.configurations.findByName(mainCompilation.deprecatedRuntimeConfigurationName)
val runtimeElementsConfiguration = project.configurations.getByName(target.runtimeElementsConfigurationName) val runtimeElementsConfiguration = project.configurations.getByName(target.runtimeElementsConfigurationName)
addJarIfNoArtifactsPresent(runtimeConfiguration, jarArtifact) runtimeConfiguration?.let { addJarIfNoArtifactsPresent(runtimeConfiguration, jarArtifact) }
addJarIfNoArtifactsPresent(runtimeElementsConfiguration, jarArtifact) addJarIfNoArtifactsPresent(runtimeElementsConfiguration, jarArtifact)
} }
} }
@@ -131,20 +131,20 @@ open class KotlinJvmTarget @Inject constructor(
) { ) {
// Make sure Kotlin compilation dependencies appear in the Java source set classpaths: // Make sure Kotlin compilation dependencies appear in the Java source set classpaths:
listOf( listOfNotNull(
compilation.apiConfigurationName, compilation.apiConfigurationName,
compilation.implementationConfigurationName, compilation.implementationConfigurationName,
compilation.compileOnlyConfigurationName, compilation.compileOnlyConfigurationName,
compilation.deprecatedCompileConfigurationName compilation.deprecatedCompileConfigurationName.takeIf { project.configurations.findByName(it) != null }
).forEach { configurationName -> ).forEach { configurationName ->
project.addExtendsFromRelation(javaSourceSet.compileClasspathConfigurationName, configurationName) project.addExtendsFromRelation(javaSourceSet.compileClasspathConfigurationName, configurationName)
} }
listOf( listOfNotNull(
compilation.apiConfigurationName, compilation.apiConfigurationName,
compilation.implementationConfigurationName, compilation.implementationConfigurationName,
compilation.runtimeOnlyConfigurationName, compilation.runtimeOnlyConfigurationName,
compilation.deprecatedRuntimeConfigurationName compilation.deprecatedRuntimeConfigurationName.takeIf { project.configurations.findByName(it) != null }
).forEach { configurationName -> ).forEach { configurationName ->
project.addExtendsFromRelation(javaSourceSet.runtimeClasspathConfigurationName, configurationName) project.addExtendsFromRelation(javaSourceSet.runtimeClasspathConfigurationName, configurationName)
} }
@@ -152,7 +152,7 @@ open class KotlinJvmTarget @Inject constructor(
// Add the Java source set dependencies to the Kotlin compilation compile & runtime configurations: // Add the Java source set dependencies to the Kotlin compilation compile & runtime configurations:
listOfNotNull( listOfNotNull(
javaSourceSet.compileConfigurationName, javaSourceSet.compileConfigurationName.takeIf { project.configurations.findByName(it) != null },
javaSourceSet.compileOnlyConfigurationName, javaSourceSet.compileOnlyConfigurationName,
javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null }, javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null },
javaSourceSet.implementationConfigurationName javaSourceSet.implementationConfigurationName
@@ -161,7 +161,7 @@ open class KotlinJvmTarget @Inject constructor(
} }
listOfNotNull( listOfNotNull(
javaSourceSet.runtimeConfigurationName, javaSourceSet.runtimeConfigurationName.takeIf { project.configurations.findByName(it) != null },
javaSourceSet.runtimeOnlyConfigurationName, javaSourceSet.runtimeOnlyConfigurationName,
javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null }, javaSourceSet.apiConfigurationName.takeIf { project.configurations.findByName(it) != null },
javaSourceSet.implementationConfigurationName javaSourceSet.implementationConfigurationName