diff --git a/build.gradle.kts b/build.gradle.kts index dfddf194511..247fa6f27a9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -400,6 +400,7 @@ val gradlePluginProjects = listOf( ":kotlin-gradle-plugin-idea", ":kotlin-gradle-plugin-idea-proto", ":kotlin-gradle-plugin-kpm-android", + ":kotlin-gradle-plugin-model", ":kotlin-gradle-plugin-tcs-android", ":kotlin-allopen", ":kotlin-noarg", diff --git a/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api b/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api index b01a00b148b..a8ca5b443a5 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api +++ b/libraries/tools/kotlin-gradle-plugin-api/api/kotlin-gradle-plugin-api.api @@ -566,11 +566,6 @@ public final class org/jetbrains/kotlin/gradle/dsl/jvm/JvmTargetValidationMode : public static fun values ()[Lorg/jetbrains/kotlin/gradle/dsl/jvm/JvmTargetValidationMode; } -public abstract class org/jetbrains/kotlin/gradle/plugin/AbstractCompileWithDependenciesTracking : org/gradle/api/tasks/compile/AbstractCompile { - public fun ()V - public fun isDependentTaskOutOfDate (Lorg/gradle/api/Task;)Z -} - public abstract interface class org/jetbrains/kotlin/gradle/plugin/CInteropSettings : org/gradle/api/Named { public abstract fun compilerOpts (Ljava/util/List;)V public abstract fun compilerOpts ([Ljava/lang/String;)V diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/AbstractCompileWithDependenciesTracking.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/AbstractCompileWithDependenciesTracking.kt deleted file mode 100644 index c511f59845b..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/AbstractCompileWithDependenciesTracking.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.jetbrains.kotlin.gradle.plugin - -import org.gradle.api.Task -import org.gradle.api.tasks.compile.AbstractCompile - -abstract class AbstractCompileWithDependenciesTracking : AbstractCompile() { - open fun isDependentTaskOutOfDate(task: Task): Boolean = false -} - diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/IncrementalSyncTask.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/IncrementalSyncTask.kt index 734294703d7..847afc65c0a 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/IncrementalSyncTask.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/IncrementalSyncTask.kt @@ -11,6 +11,7 @@ interface IncrementalSyncTask : Task { @get:InputFiles @get:NormalizeLineEndings @get:IgnoreEmptyDirectories + @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:SkipWhenEmpty val from: ConfigurableFileCollection diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt index 92853e7d262..47991e2b604 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt @@ -247,28 +247,6 @@ class SimpleKotlinGradleIT : KGPBaseTest() { } } - @DisplayName("Validate Gradle plugins inputs") - // TODO(Dmitrii Krasnov): validate-external-gradle-plugin has been removed in Gradle 8.0, - // so this test should be removed after correct configuring k-g-p and k-g-p-api tasks - @GradleTestVersions( - minVersion = TestVersions.Gradle.G_7_6, - maxVersion = TestVersions.Gradle.G_7_6 - ) // Always should use only latest Gradle version - @GradleTest - internal fun validatePluginInputs(gradleVersion: GradleVersion) { - project("kotlinProject", gradleVersion) { - buildGradle.modify { - """ - plugins { - id "validate-external-gradle-plugin" - ${it.substringAfter("plugins {")} - """.trimIndent() - } - - build("validateExternalPlugins") - } - } - @DisplayName("Accessing Kotlin SourceSet in KotlinDSL") @GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_1) @GradleTest diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt index 09099e89b2b..800a08e138a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/Kapt3AndroidIT.kt @@ -207,6 +207,7 @@ class Kapt3AndroidIT : Kapt3BaseIT() { this.argsFile = argsFile } + @PathSensitive(PathSensitivity.RELATIVE) @InputFile File inputFile = null diff --git a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts index b3299273af4..d60048b4237 100644 --- a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts @@ -170,11 +170,6 @@ tasks { } } - withType().configureEach { - failOnWarning.set(true) - enableStricterValidation.set(true) - } - withType().configureEach { relocate("com.github.gundy", "$kotlinEmbeddableRootPackage.com.github.gundy") relocate("de.undercouch.gradle.tasks.download", "$kotlinEmbeddableRootPackage.de.undercouch.gradle.tasks.download") @@ -187,9 +182,12 @@ tasks { } } -projectTest { - dependsOn(tasks.named("validatePlugins")) +tasks.named("validatePlugins") { + // We're manually registering and wiring validation tasks for each plugin variant + enabled = false +} +projectTest { workingDir = rootDir } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithoutKotlincTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithoutKotlincTask.kt index 76ee7e52e0f..e627fe4d9df 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithoutKotlincTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithoutKotlincTask.kt @@ -12,6 +12,7 @@ import org.gradle.api.provider.ListProperty import org.gradle.api.provider.MapProperty import org.gradle.api.provider.Property import org.gradle.api.provider.ProviderFactory +import org.gradle.api.tasks.CacheableTask import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction @@ -35,6 +36,7 @@ import java.net.URL import java.net.URLClassLoader import javax.inject.Inject +@CacheableTask abstract class KaptWithoutKotlincTask @Inject constructor( objectFactory: ObjectFactory, private val providerFactory: ProviderFactory, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinSourceSetProcessor.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinSourceSetProcessor.kt index e94bfbcd763..d62abf914bb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinSourceSetProcessor.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinSourceSetProcessor.kt @@ -8,13 +8,12 @@ package org.jetbrains.kotlin.gradle.plugin import org.gradle.api.DefaultTask import org.gradle.api.Project import org.gradle.api.file.Directory -import org.gradle.api.file.FileCollection -import org.gradle.api.file.SourceDirectorySet import org.gradle.api.logging.Logging import org.gradle.api.provider.Property import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.bundling.Jar +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile @@ -116,6 +115,7 @@ internal abstract class KotlinSourceSetProcessor>( private fun createAdditionalClassesTaskForIdeRunner() { val kotlinCompilation = compilationInfo.tcsOrNull?.compilation ?: return + @DisableCachingByDefault(because = "Marker task for IDE sync") open class IDEClassesTask : DefaultTask() // Workaround: as per KT-26641, when there's a Kotlin compilation with a Java source set, we create another task // that has a name composed as 'Classes`, where the IDE module name is the default source set name: diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeResolveDependenciesTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeResolveDependenciesTask.kt index 253e7ea3c64..49c336ab278 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeResolveDependenciesTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeResolveDependenciesTask.kt @@ -10,6 +10,7 @@ import org.gradle.api.DefaultTask import org.gradle.api.Project import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.TaskProvider +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependencyCoordinates import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask @@ -32,6 +33,7 @@ internal fun Project.locateOrRegisterIdeResolveDependenciesTask(): TaskProvider< * This will invoke the [IdeMultiplatformImport] to resolve all dependencies (like the IDE would). * Outputs are written as json and protobufs */ +@DisableCachingByDefault(because = "Used for debugging/diagnostic purpose.") internal open class IdeResolveDependenciesTask : DefaultTask() { @TaskAction diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTask.kt index e2c7368d8d0..0e1ba43f9fe 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MetadataDependencyTransformationTask.kt @@ -95,6 +95,7 @@ open class MetadataDependencyTransformationTask .fileProperty() .apply { set(outputsDir.resolve("${kotlinSourceSet.name}.visibleSourceSets")) } + @get:PathSensitive(PathSensitivity.RELATIVE) @get:InputFiles protected val parentVisibleSourceSetFiles: FileCollection = project.filesProvider { parentTransformationTasks.map { taskProvider -> @@ -104,6 +105,7 @@ open class MetadataDependencyTransformationTask } } + @get:PathSensitive(PathSensitivity.RELATIVE) @get:InputFiles protected val parentTransformedLibraries: FileCollection = project.filesProvider { parentTransformationTasks.map { taskProvider -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt index ac282dcb1ea..1c39cf02186 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt @@ -229,9 +229,11 @@ internal abstract class FrameworkCopy : DefaultTask() { @get:Inject abstract val execOperations: ExecOperations + @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:InputDirectory abstract val sourceFramework: DirectoryProperty + @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:InputFiles @get:IgnoreEmptyDirectories protected val sourceDsym = sourceFramework.mapToFile().map { File(it.path + ".dSYM") } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XCFrameworkTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XCFrameworkTask.kt index ad22f21f349..b75dc5200fc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XCFrameworkTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XCFrameworkTask.kt @@ -12,6 +12,7 @@ import org.gradle.api.file.ProjectLayout import org.gradle.api.provider.Provider import org.gradle.api.tasks.* import org.gradle.process.ExecOperations +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.cocoapods.asValidFrameworkName import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics import org.jetbrains.kotlin.gradle.plugin.diagnostics.UsesKotlinToolingDiagnostics @@ -144,6 +145,7 @@ private fun Project.registerAssembleFatForXCFrameworkTask( } } +@DisableCachingByDefault abstract class XCFrameworkTask @Inject internal constructor( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XcodeVersionTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XcodeVersionTask.kt index ae91a6cf027..804183992bf 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XcodeVersionTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XcodeVersionTask.kt @@ -42,6 +42,7 @@ internal abstract class XcodeVersionTask : DefaultTask() { } } + @get:PathSensitive(PathSensitivity.ABSOLUTE) @get:InputFiles // @InputFiles instead of @InputFile because it allows non-existing files abstract val xcodeSelectLink: ConfigurableFileCollection diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt index 458896b81d0..1365c715ff4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/scripting/internal/ScriptingGradleSubplugin.kt @@ -11,6 +11,7 @@ import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.dsl.DependencyHandler +import org.gradle.api.artifacts.transform.CacheableTransform import org.gradle.api.artifacts.transform.InputArtifact import org.gradle.api.artifacts.transform.TransformAction import org.gradle.api.artifacts.transform.TransformOutputs @@ -18,6 +19,7 @@ import org.gradle.api.artifacts.transform.TransformParameters import org.gradle.api.attributes.Attribute import org.gradle.api.file.FileSystemLocation import org.gradle.api.provider.Provider +import org.gradle.api.tasks.Classpath import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.cli.common.messages.MessageRenderer import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector @@ -115,7 +117,9 @@ private fun configureDiscoveryTransformation( project.dependencies.registerOnceDiscoverScriptExtensionsTransform() } +@CacheableTransform internal abstract class DiscoverScriptExtensionsTransformAction : TransformAction { + @get:Classpath @get:InputArtifact @get:NormalizeLineEndings abstract val inputArtifact: Provider diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/binaryen/BinaryenExec.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/binaryen/BinaryenExec.kt index ca6bb28036b..bab9d366083 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/binaryen/BinaryenExec.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/binaryen/BinaryenExec.kt @@ -7,12 +7,14 @@ package org.jetbrains.kotlin.gradle.targets.js.binaryen import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.utils.newFileProperty import javax.inject.Inject +@DisableCachingByDefault open class BinaryenExec @Inject constructor() : AbstractExecTask(BinaryenExec::class.java) { @@ -62,6 +64,7 @@ constructor() : AbstractExecTask(BinaryenExec::class.java) { "-Oz", ) + @PathSensitive(PathSensitivity.RELATIVE) @InputFile @NormalizeLineEndings val inputFileProperty: RegularFileProperty = project.newFileProperty() diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt index 75c6acb7f91..88a0d497733 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/d8/D8Exec.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.d8 import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation @@ -14,6 +15,7 @@ import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.utils.newFileProperty +@DisableCachingByDefault open class D8Exec : AbstractExecTask(D8Exec::class.java) { init { onlyIf { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt index 110a0636340..57435769c0c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsExec.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.nodejs import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation @@ -19,6 +20,7 @@ import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.utils.newFileProperty import javax.inject.Inject +@DisableCachingByDefault open class NodeJsExec @Inject constructor( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt index 933ca6180bb..857ec128327 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/nodejs/NodeJsSetupTask.kt @@ -8,6 +8,7 @@ import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Provider import org.gradle.api.tasks.* import org.gradle.internal.hash.FileHasher +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.logging.kotlinInfo import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension @@ -20,6 +21,7 @@ import java.nio.file.Path import java.nio.file.Paths import javax.inject.Inject +@DisableCachingByDefault abstract class NodeJsSetupTask : DefaultTask() { @Transient private val settings = project.rootProject.kotlinNodeJsExtension diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PublicPackageJsonTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PublicPackageJsonTask.kt index ad56fc8ed49..97350a4842b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PublicPackageJsonTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/PublicPackageJsonTask.kt @@ -11,10 +11,12 @@ import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON import org.jetbrains.kotlin.gradle.utils.property import java.io.File +@DisableCachingByDefault abstract class PublicPackageJsonTask : DefaultTask(), UsesKotlinNpmResolutionManager { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmCachesSetup.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmCachesSetup.kt index 0d3e1c99423..f072311bbde 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmCachesSetup.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmCachesSetup.kt @@ -8,9 +8,11 @@ package org.jetbrains.kotlin.gradle.targets.js.npm.tasks import org.gradle.api.DefaultTask import org.gradle.api.tasks.TaskAction import org.gradle.internal.hash.FileHasher +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.targets.js.npm.UsesGradleNodeModulesCache import javax.inject.Inject +@DisableCachingByDefault abstract class KotlinNpmCachesSetup : DefaultTask(), UsesGradleNodeModulesCache { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt index 3c1346e68bf..bc9013b51e3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinNpmInstallTask.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.npm.tasks import org.gradle.api.DefaultTask import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension @@ -18,6 +19,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinRootNpmResolver import org.jetbrains.kotlin.gradle.targets.js.yarn.yarn import java.io.File +@DisableCachingByDefault abstract class KotlinNpmInstallTask : DefaultTask(), UsesKotlinNpmResolutionManager { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt index 674962a59a6..eea1c066dd0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/KotlinPackageJsonTask.kt @@ -9,6 +9,7 @@ import org.gradle.api.DefaultTask import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.provider.Property import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension @@ -22,6 +23,7 @@ import org.jetbrains.kotlin.gradle.utils.CompositeProjectComponentArtifactMetada import org.jetbrains.kotlin.gradle.utils.`is` import java.io.File +@DisableCachingByDefault abstract class KotlinPackageJsonTask : DefaultTask(), UsesKotlinNpmResolutionManager, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/RootPackageJsonTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/RootPackageJsonTask.kt index 040be63c0c3..658d86c4dcd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/RootPackageJsonTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/tasks/RootPackageJsonTask.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.npm.tasks import org.gradle.api.DefaultTask import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.npm.* @@ -14,6 +15,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinRootNpmResolver import org.jetbrains.kotlin.gradle.targets.js.yarn.yarn import java.io.File +@DisableCachingByDefault abstract class RootPackageJsonTask : DefaultTask(), UsesKotlinNpmResolutionManager { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt index 8e9212bad53..5961a847188 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt @@ -11,6 +11,7 @@ import org.gradle.api.file.FileCollection import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.* import org.gradle.process.internal.DefaultProcessForkOptions +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation @@ -27,6 +28,7 @@ import org.jetbrains.kotlin.gradle.utils.getValue import org.jetbrains.kotlin.gradle.utils.newFileProperty import javax.inject.Inject +@DisableCachingByDefault abstract class KotlinJsTest @Inject constructor( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/typescript/TypeScriptValidationTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/typescript/TypeScriptValidationTask.kt index 502e88ef10f..05c68e33eb6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/typescript/TypeScriptValidationTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/typescript/TypeScriptValidationTask.kt @@ -9,6 +9,7 @@ import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty import org.gradle.api.provider.Property import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.internal.execWithProgress import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation @@ -19,6 +20,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import javax.inject.Inject +@DisableCachingByDefault abstract class TypeScriptValidationTask @Inject constructor( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt index d12368d9385..1ee7b26a890 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnLockCopyTask.kt @@ -12,11 +12,13 @@ import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.utils.contentEquals import java.io.File import javax.inject.Inject +@DisableCachingByDefault abstract class YarnLockCopyTask : DefaultTask() { @get:NormalizeLineEndings @@ -56,6 +58,7 @@ abstract class YarnLockCopyTask : DefaultTask() { } } +@DisableCachingByDefault abstract class YarnLockStoreTask : YarnLockCopyTask() { @Input lateinit var yarnLockMismatchReport: Provider diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt index ded62a2d722..451fdeceb8a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnSetupTask.kt @@ -12,6 +12,7 @@ import org.gradle.api.file.FileSystemOperations import org.gradle.api.provider.Provider import org.gradle.api.tasks.* import org.gradle.internal.hash.FileHasher +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.logging.kotlinInfo import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService import org.jetbrains.kotlin.gradle.targets.js.extractWithUpToDate @@ -21,6 +22,7 @@ import java.io.File import java.net.URI import javax.inject.Inject +@DisableCachingByDefault abstract class YarnSetupTask : DefaultTask() { @Transient private val settings = project.yarn diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/tasks/KotlinJvmRun.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/tasks/KotlinJvmRun.kt index 789cbb7937d..7d1ac565f56 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/tasks/KotlinJvmRun.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/tasks/KotlinJvmRun.kt @@ -7,6 +7,7 @@ import org.gradle.api.provider.Provider import org.gradle.api.tasks.JavaExec import org.gradle.api.tasks.TaskProvider import org.gradle.jvm.toolchain.JavaToolchainService +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation @@ -41,6 +42,7 @@ import org.jetbrains.kotlin.tooling.core.UnsafeApi * ``` */ @InternalKotlinGradlePluginApi +@DisableCachingByDefault open class KotlinJvmRun : JavaExec() @ExperimentalKotlinGradlePluginApi diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/AbstractPodInstallTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/AbstractPodInstallTask.kt index 78301f7fa0f..a18631da6cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/AbstractPodInstallTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/AbstractPodInstallTask.kt @@ -10,6 +10,7 @@ package org.jetbrains.kotlin.gradle.targets.native.tasks import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.utils.onlyIfCompat import org.jetbrains.kotlin.gradle.utils.runCommand import java.io.File @@ -20,12 +21,14 @@ import java.io.IOException * to obtain sources or artifacts for the declared dependencies. * This task is a part of CocoaPods integration infrastructure. */ +@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") abstract class AbstractPodInstallTask : CocoapodsTask() { init { onlyIfCompat("Podfile location is set") { podfile.isPresent } } @get:Optional + @get:PathSensitive(PathSensitivity.RELATIVE) @get:InputFile abstract val podfile: Property diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/CocoapodsTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/CocoapodsTask.kt index b976e61295d..845fe4cab91 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/CocoapodsTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/CocoapodsTask.kt @@ -8,12 +8,14 @@ package org.jetbrains.kotlin.gradle.targets.native.tasks import org.gradle.api.DefaultTask +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.CocoapodsDependency import org.jetbrains.kotlin.konan.target.HostManager val CocoapodsDependency.schemeName: String get() = name.split("/")[0] +@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") open class CocoapodsTask : DefaultTask() { init { onlyIf { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodBuildTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodBuildTask.kt index 92c5273c25a..08995c0c1b7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodBuildTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodBuildTask.kt @@ -13,6 +13,7 @@ import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderFactory import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.* import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.CocoapodsDependency.PodLocation.* import org.jetbrains.kotlin.gradle.plugin.cocoapods.cocoapodsBuildDirs @@ -24,12 +25,14 @@ import javax.inject.Inject /** * The task compiles external cocoa pods sources. */ +@DisableCachingByDefault abstract class PodBuildTask @Inject constructor( providerFactory: ProviderFactory, projectLayout: ProjectLayout, objectFactory: ObjectFactory, ) : CocoapodsTask() { + @get:PathSensitive(PathSensitivity.RELATIVE) @get:InputFile abstract val buildSettingsFile: RegularFileProperty @@ -44,6 +47,7 @@ abstract class PodBuildTask @Inject constructor( private val synthetic = projectLayout.cocoapodsBuildDirs.synthetic(family) + @get:PathSensitive(PathSensitivity.RELATIVE) @get:IgnoreEmptyDirectories @get:InputDirectory internal val srcDir: Provider = pod.flatMap { pod -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodGenTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodGenTask.kt index b08c5c7a853..526c30cc7a2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodGenTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodGenTask.kt @@ -13,6 +13,7 @@ import org.gradle.api.provider.ListProperty import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.* import org.jetbrains.kotlin.gradle.plugin.cocoapods.cocoapodsBuildDirs import org.jetbrains.kotlin.gradle.plugin.cocoapods.platformLiteral @@ -25,6 +26,7 @@ import javax.inject.Inject /** * The task generates a synthetic project with all cocoapods dependencies */ +@DisableCachingByDefault abstract class PodGenTask @Inject constructor(projectLayout: ProjectLayout) : CocoapodsTask() { init { @@ -33,6 +35,7 @@ abstract class PodGenTask @Inject constructor(projectLayout: ProjectLayout) : Co } } + @get:PathSensitive(PathSensitivity.RELATIVE) @get:InputFile internal abstract val podspec: Property @@ -51,6 +54,7 @@ abstract class PodGenTask @Inject constructor(projectLayout: ProjectLayout) : Co @get:Nested internal abstract val pods: ListProperty + @get:PathSensitive(PathSensitivity.RELATIVE) @get:Optional @get:InputFile internal abstract val xcodeVersion: RegularFileProperty diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallSyntheticTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallSyntheticTask.kt index 2ce33d93987..fef1bad4af3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallSyntheticTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallSyntheticTask.kt @@ -11,10 +11,12 @@ import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.tasks.Input import org.gradle.api.tasks.OutputDirectory +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.cocoapods.platformLiteral import org.jetbrains.kotlin.konan.target.Family import java.io.File +@DisableCachingByDefault abstract class PodInstallSyntheticTask : AbstractPodInstallTask() { @get:Input diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallTask.kt index 9e351cc5371..c7a2150b584 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallTask.kt @@ -10,14 +10,17 @@ package org.jetbrains.kotlin.gradle.targets.native.tasks import org.gradle.api.provider.ListProperty import org.gradle.api.provider.Property import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.CocoapodsDependency import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.SpecRepos import org.jetbrains.kotlin.gradle.targets.native.cocoapods.MissingCocoapodsMessage import org.jetbrains.kotlin.gradle.targets.native.cocoapods.MissingSpecReposMessage import java.io.File +@DisableCachingByDefault abstract class PodInstallTask : AbstractPodInstallTask() { + @get:PathSensitive(PathSensitivity.RELATIVE) @get:Optional @get:InputFile abstract val podspec: Property diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodSetupBuildTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodSetupBuildTask.kt index b5a0e342253..c5d51bb689d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodSetupBuildTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodSetupBuildTask.kt @@ -12,6 +12,7 @@ import org.gradle.api.file.RegularFile import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.cocoapods.CocoapodsExtension.CocoapodsDependency import org.jetbrains.kotlin.gradle.plugin.cocoapods.cocoapodsBuildDirs import org.jetbrains.kotlin.gradle.utils.getFile @@ -19,6 +20,7 @@ import org.jetbrains.kotlin.gradle.utils.runCommand import java.io.File import javax.inject.Inject +@DisableCachingByDefault abstract class PodSetupBuildTask @Inject constructor(projectLayout: ProjectLayout) : CocoapodsTask() { @get:Input diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/AbstractCInteropCommonizerTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/AbstractCInteropCommonizerTask.kt index 8100718ec74..d10f6b8b90d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/AbstractCInteropCommonizerTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/AbstractCInteropCommonizerTask.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.native.internal import org.gradle.api.DefaultTask import org.gradle.api.file.FileCollection import org.gradle.api.tasks.OutputDirectory +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.commonizer.CommonizerOutputFileLayout import org.jetbrains.kotlin.commonizer.CommonizerOutputFileLayout.base64Hash import org.jetbrains.kotlin.commonizer.CommonizerOutputFileLayout.ensureMaxFileNameLength @@ -17,6 +18,7 @@ import org.jetbrains.kotlin.gradle.utils.future import org.jetbrains.kotlin.gradle.utils.outputFilesProvider import java.io.File +@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") internal abstract class AbstractCInteropCommonizerTask : DefaultTask() { @get:OutputDirectory abstract val outputDirectory: File diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt index 0058af3f7fd..02cdc0abe8a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt @@ -12,6 +12,7 @@ import org.gradle.api.file.FileTree import org.gradle.api.model.ObjectFactory import org.gradle.api.tasks.* import org.gradle.process.ExecOperations +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.cocoapods.asValidFrameworkName import org.jetbrains.kotlin.gradle.plugin.mpp.Framework import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget @@ -115,6 +116,7 @@ class FrameworkDescriptor( /** * Task running lipo to create a fat framework from several simple frameworks. It also merges headers, plists and module files. */ +@DisableCachingByDefault open class FatFrameworkTask @Inject internal constructor( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativePerformanceTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativePerformanceTask.kt index 866e9941151..411577704e4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativePerformanceTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativePerformanceTask.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.native.tasks import org.gradle.api.DefaultTask import org.gradle.api.Task import org.gradle.api.tasks.* +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBinary import org.jetbrains.kotlin.gradle.plugin.performance.PerformanceExtension @@ -18,6 +19,7 @@ import java.io.File /** * The task generates performance report for Kotlin/Native binary. */ +@DisableCachingByDefault open class NativePerformanceReport : DefaultTask() { @Internal lateinit var binary: NativeBinary diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index fc91faceb8d..106d2c9ce74 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -21,6 +21,7 @@ import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderFactory import org.gradle.api.tasks.* import org.gradle.process.ExecOperations +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.cli.common.arguments.* import org.jetbrains.kotlin.compilerRunner.* @@ -120,6 +121,7 @@ internal fun Collection.filterKlibsPassedToCompiler(): List = filter internal fun FileCollection.filterKlibsPassedToCompiler(): FileCollection = filter(File::canKlibBePassedToCompiler) // endregion +@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") abstract class AbstractKotlinNativeCompile< T : KotlinCommonToolOptions, M : CommonToolArguments diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTest.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTest.kt index b929f7d5066..4101b2b41b2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTest.kt @@ -15,6 +15,7 @@ import org.gradle.api.tasks.* import org.gradle.api.tasks.options.Option import org.gradle.process.ProcessForkOptions import org.gradle.process.internal.DefaultProcessForkOptions +import org.gradle.work.DisableCachingByDefault import org.gradle.work.NormalizeLineEndings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec @@ -26,6 +27,7 @@ import java.io.File import java.util.concurrent.Callable import javax.inject.Inject +@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") abstract class KotlinNativeTest : KotlinTest() { @get:Inject abstract val providerFactory: ProviderFactory @@ -198,6 +200,7 @@ abstract class KotlinNativeTest : KotlinTest() { /** * A task running Kotlin/Native tests on a host machine. */ +@DisableCachingByDefault abstract class KotlinNativeHostTest : KotlinNativeTest() { @get:Internal override val testCommand: TestCommand = object : TestCommand() { @@ -217,6 +220,7 @@ abstract class KotlinNativeHostTest : KotlinNativeTest() { /** * A task running Kotlin/Native tests on a simulator (iOS/watchOS/tvOS). */ +@DisableCachingByDefault abstract class KotlinNativeSimulatorTest : KotlinNativeTest() { @Deprecated("Use the property 'device' instead") @get:Internal diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinNativeLinkArtifactTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinNativeLinkArtifactTask.kt index ebf0ce5d0c8..fb1bb090847 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinNativeLinkArtifactTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinNativeLinkArtifactTask.kt @@ -19,6 +19,7 @@ import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.tasks.* import org.gradle.process.ExecOperations +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.compilerRunner.KotlinNativeCompilerRunner import org.jetbrains.kotlin.compilerRunner.KotlinToolRunner import org.jetbrains.kotlin.gradle.dsl.* @@ -35,6 +36,7 @@ import org.jetbrains.kotlin.konan.util.visibleName import java.io.File import javax.inject.Inject +@DisableCachingByDefault @Suppress("LeakingThis") abstract class KotlinNativeLinkArtifactTask @Inject constructor( @get:Input val konanTarget: KonanTarget, @@ -93,6 +95,7 @@ abstract class KotlinNativeLinkArtifactTask @Inject constructor( @get:Input abstract val binaryOptions: MapProperty + @get:PathSensitive(PathSensitivity.RELATIVE) @get:Optional @get:InputFile abstract val xcodeVersion: RegularFileProperty diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt index 4a1c31e440a..6f9f8c9af6f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompile.kt @@ -15,10 +15,7 @@ import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.provider.SetProperty import org.gradle.api.tasks.* -import org.gradle.work.ChangeType -import org.gradle.work.Incremental -import org.gradle.work.InputChanges -import org.gradle.work.NormalizeLineEndings +import org.gradle.work.* import org.gradle.workers.WorkerExecutor import org.jetbrains.kotlin.build.report.metrics.BuildPerformanceMetric import org.jetbrains.kotlin.build.report.metrics.BuildTime @@ -52,6 +49,7 @@ import java.io.File import javax.inject.Inject import org.jetbrains.kotlin.gradle.tasks.cleanOutputsAndLocalState as cleanOutputsAndLocalStateUtil +@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") abstract class AbstractKotlinCompile @Inject constructor( objectFactory: ObjectFactory, workerExecutor: WorkerExecutor diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompileTool.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompileTool.kt index 2f15c936fac..624f6ea71c4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompileTool.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/AbstractKotlinCompileTool.kt @@ -17,6 +17,7 @@ import org.gradle.api.tasks.Classpath import org.gradle.api.tasks.Internal import org.gradle.api.tasks.util.PatternFilterable import org.gradle.api.tasks.util.PatternSet +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.build.DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporterImpl @@ -28,6 +29,7 @@ import org.jetbrains.kotlin.gradle.utils.fileExtensionCasePermutations import org.jetbrains.kotlin.gradle.utils.property import javax.inject.Inject +@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") abstract class AbstractKotlinCompileTool @Inject constructor( objectFactory: ObjectFactory, ) : DefaultTask(), diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanDataTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanDataTask.kt index f15a6e21cda..35098adbb1b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanDataTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanDataTask.kt @@ -9,6 +9,7 @@ import org.gradle.api.DefaultTask import org.gradle.api.provider.Provider import org.gradle.api.tasks.Input import org.gradle.api.tasks.TaskAction +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.tasks.internal.CleanableStore import java.time.Duration import java.time.Instant @@ -16,6 +17,7 @@ import java.time.Instant /** * Task to clean all old unused loaded files from registered stores in [CleanableStore]. */ +@DisableCachingByDefault open class CleanDataTask : DefaultTask() { /** diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanOldStoredDataTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanOldStoredDataTask.kt deleted file mode 100644 index 0b15a2cf97a..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanOldStoredDataTask.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.gradle.tasks - -import org.gradle.api.DefaultTask -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.TaskAction -import org.jetbrains.kotlin.gradle.tasks.internal.CleanableStore -import java.time.* - -/** - * Task to clean all old loaded files based on a last modification date. - * All registered store in {@link CleanableStore} would be cleaned - */ -open class CleanOldStoredDataTask : DefaultTask() { - - /** - * Time to live in days - */ - @Input - val timeToLiveInDays: Long = 30 - - @Suppress("unused") - @TaskAction - fun exec() { - val expirationDate = Instant.now().minus(Duration.ofDays(timeToLiveInDays)) - - CleanableStore.stores.forEach { (_, store) -> store.cleanDir(expirationDate) } - - } - - companion object { - const val NAME: String = "clean store" - } - -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt index 0534a7dbad8..ec2913c4c77 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/KotlinTest.kt @@ -12,6 +12,7 @@ import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Optional import org.gradle.api.tasks.testing.AbstractTestTask import org.gradle.process.internal.ExecHandleFactory +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.internal.testing.KotlinTestRunnerListener import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider @@ -21,6 +22,7 @@ import org.jetbrains.kotlin.gradle.plugin.variantImplementationFactoryProvider import org.jetbrains.kotlin.gradle.utils.injected import javax.inject.Inject +@DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") abstract class KotlinTest : AbstractTestTask(), UsesVariantImplementationFactories { @Input @Optional diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestReport.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestReport.kt index 42f5d639962..5ec0932d459 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestReport.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/testing/internal/KotlinTestReport.kt @@ -15,6 +15,7 @@ import org.gradle.api.tasks.Internal import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.testing.* +import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.internal.testing.KotlinTestRunnerListener import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider import org.jetbrains.kotlin.gradle.plugin.internal.KotlinTestReportCompatibilityHelper @@ -44,6 +45,7 @@ import org.jetbrains.kotlin.gradle.utils.toUri * In this case, only topmost aggregate test task will override reporting, * event if child tasks will be executed. */ +@DisableCachingByDefault abstract class KotlinTestReport : TestReport(), UsesTestReportService { @Transient @Internal diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt index 8d69477177b..96d9d052826 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt @@ -84,6 +84,7 @@ internal val GradleKpmModule.buildKotlinToolingMetadataTask: TaskProvider { + val validatePluginsTask = tasks.register("validatePlugins${sourceSet.name.capitalize()}") { + group = "Plugin development" // PLUGIN_DEVELOPMENT_GROUP + // VALIDATE_PLUGIN_TASK_DESCRIPTION + description = "Validates the plugin by checking parameter annotations on task and artifact transform types etc." + + enableStricterValidation.set(true) + failOnWarning.set(true) + outputFile.set(project.layout.buildDirectory.file("reports/plugin-development/validation-report-${sourceSet.name}.txt")) + classes.from({ sourceSet.output.classesDirs }) + classpath.from({ sourceSet.compileClasspath }) + + val javaPluginExtension = project.extensions.getByType() + val toolchainService = project.extensions.getByType() + launcher.convention(toolchainService.launcherFor(javaPluginExtension.toolchain)) + } + + tasks.named(JavaBasePlugin.CHECK_TASK_NAME) { + dependsOn(validatePluginsTask) + } + + tasks.named("test") { + dependsOn(validatePluginsTask) + } + + return validatePluginsTask +} diff --git a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts index 60c0df36314..8104f84a8b6 100644 --- a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts +++ b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts @@ -77,3 +77,4 @@ publishing { } } } +