[Gradle] Add 'validatePlugins' tasks for Gradle plugin dependencies
Gradle 8 has removed "validate-external-gradle-plugin" plugin which we used before to run validate task inputs proper annotations. With this change, every Gradle dependency that is not published as a Gradle plugin but uses Gradle API types is also running 'validatedPlugins' task registered manually via a build script. ^KT-59827 Fixed
This commit is contained in:
committed by
Space Team
parent
f5889bcc6c
commit
dc5660d98c
@@ -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",
|
||||
|
||||
@@ -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 <init> ()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
|
||||
|
||||
-9
@@ -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
|
||||
}
|
||||
|
||||
+1
@@ -11,6 +11,7 @@ interface IncrementalSyncTask : Task {
|
||||
@get:InputFiles
|
||||
@get:NormalizeLineEndings
|
||||
@get:IgnoreEmptyDirectories
|
||||
@get:PathSensitive(PathSensitivity.ABSOLUTE)
|
||||
@get:SkipWhenEmpty
|
||||
val from: ConfigurableFileCollection
|
||||
|
||||
|
||||
-22
@@ -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
|
||||
|
||||
+1
@@ -207,6 +207,7 @@ class Kapt3AndroidIT : Kapt3BaseIT() {
|
||||
this.argsFile = argsFile
|
||||
}
|
||||
|
||||
@PathSensitive(PathSensitivity.RELATIVE)
|
||||
@InputFile
|
||||
File inputFile = null
|
||||
|
||||
|
||||
@@ -170,11 +170,6 @@ tasks {
|
||||
}
|
||||
}
|
||||
|
||||
withType<ValidatePlugins>().configureEach {
|
||||
failOnWarning.set(true)
|
||||
enableStricterValidation.set(true)
|
||||
}
|
||||
|
||||
withType<ShadowJar>().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
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -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,
|
||||
|
||||
+2
-2
@@ -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<T : AbstractKotlinCompile<*>>(
|
||||
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 '<IDE module name>Classes`, where the IDE module name is the default source set name:
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+2
@@ -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 ->
|
||||
|
||||
+2
@@ -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") }
|
||||
|
||||
+2
@@ -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(
|
||||
|
||||
+1
@@ -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
|
||||
|
||||
|
||||
+4
@@ -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<TransformParameters.None> {
|
||||
@get:Classpath
|
||||
@get:InputArtifact
|
||||
@get:NormalizeLineEndings
|
||||
abstract val inputArtifact: Provider<FileSystemLocation>
|
||||
|
||||
+3
@@ -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>(BinaryenExec::class.java) {
|
||||
@@ -62,6 +64,7 @@ constructor() : AbstractExecTask<BinaryenExec>(BinaryenExec::class.java) {
|
||||
"-Oz",
|
||||
)
|
||||
|
||||
@PathSensitive(PathSensitivity.RELATIVE)
|
||||
@InputFile
|
||||
@NormalizeLineEndings
|
||||
val inputFileProperty: RegularFileProperty = project.newFileProperty()
|
||||
|
||||
+2
@@ -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>(D8Exec::class.java) {
|
||||
init {
|
||||
onlyIf {
|
||||
|
||||
+2
@@ -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(
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+2
@@ -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 {
|
||||
|
||||
+2
@@ -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 {
|
||||
|
||||
+2
@@ -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 {
|
||||
|
||||
+2
@@ -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,
|
||||
|
||||
+2
@@ -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 {
|
||||
|
||||
+2
@@ -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(
|
||||
|
||||
+2
@@ -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(
|
||||
|
||||
+3
@@ -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<YarnLockMismatchReport>
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+3
@@ -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<File?>
|
||||
|
||||
|
||||
+2
@@ -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 {
|
||||
|
||||
+4
@@ -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<Directory> = pod.flatMap { pod ->
|
||||
|
||||
+4
@@ -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<File>
|
||||
|
||||
@@ -51,6 +54,7 @@ abstract class PodGenTask @Inject constructor(projectLayout: ProjectLayout) : Co
|
||||
@get:Nested
|
||||
internal abstract val pods: ListProperty<CocoapodsDependency>
|
||||
|
||||
@get:PathSensitive(PathSensitivity.RELATIVE)
|
||||
@get:Optional
|
||||
@get:InputFile
|
||||
internal abstract val xcodeVersion: RegularFileProperty
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+3
@@ -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<File?>
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+2
@@ -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(
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+2
@@ -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<File>.filterKlibsPassedToCompiler(): List<File> = 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
|
||||
|
||||
+4
@@ -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
|
||||
|
||||
+3
@@ -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<String, String>
|
||||
|
||||
@get:PathSensitive(PathSensitivity.RELATIVE)
|
||||
@get:Optional
|
||||
@get:InputFile
|
||||
abstract val xcodeVersion: RegularFileProperty
|
||||
|
||||
+2
-4
@@ -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<T : CommonCompilerArguments> @Inject constructor(
|
||||
objectFactory: ObjectFactory,
|
||||
workerExecutor: WorkerExecutor
|
||||
|
||||
+2
@@ -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<T : CommonToolArguments> @Inject constructor(
|
||||
objectFactory: ObjectFactory,
|
||||
) : DefaultTask(),
|
||||
|
||||
+2
@@ -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() {
|
||||
|
||||
/**
|
||||
|
||||
-39
@@ -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"
|
||||
}
|
||||
|
||||
}
|
||||
+2
@@ -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
|
||||
|
||||
+2
@@ -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
|
||||
|
||||
+1
@@ -84,6 +84,7 @@ internal val GradleKpmModule.buildKotlinToolingMetadataTask: TaskProvider<BuildK
|
||||
)
|
||||
}
|
||||
|
||||
@DisableCachingByDefault
|
||||
abstract class BuildKotlinToolingMetadataTask : DefaultTask() {
|
||||
|
||||
@DisableCachingByDefault
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.gradle.api.attributes.java.TargetJvmEnvironment
|
||||
import org.gradle.api.attributes.java.TargetJvmVersion
|
||||
import org.gradle.api.attributes.plugin.GradlePluginApiVersion
|
||||
import org.gradle.api.component.AdhocComponentWithVariants
|
||||
import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.gradle.api.plugins.JavaLibraryPlugin
|
||||
import org.gradle.api.plugins.JavaPlugin
|
||||
import org.gradle.api.plugins.JavaPluginExtension
|
||||
@@ -21,10 +22,14 @@ import org.gradle.api.publish.PublishingExtension
|
||||
import org.gradle.api.publish.maven.MavenPublication
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.gradle.api.tasks.SourceSet
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.compile.JavaCompile
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import org.gradle.jvm.toolchain.JavaToolchainService
|
||||
import org.gradle.kotlin.dsl.*
|
||||
import org.gradle.kotlin.dsl.support.uppercaseFirstChar
|
||||
import org.gradle.plugin.devel.plugins.JavaGradlePluginPlugin
|
||||
import org.gradle.plugin.devel.tasks.ValidatePlugins
|
||||
import org.jetbrains.dokka.DokkaVersion
|
||||
import org.jetbrains.dokka.gradle.DokkaTask
|
||||
import org.jetbrains.dokka.gradle.GradleExternalDocumentationLinkBuilder
|
||||
@@ -174,6 +179,8 @@ fun Project.createGradleCommonSourceSet(): SourceSet {
|
||||
}
|
||||
}
|
||||
|
||||
registerValidatePluginTasks(commonSourceSet)
|
||||
|
||||
return commonSourceSet
|
||||
}
|
||||
|
||||
@@ -513,6 +520,8 @@ fun Project.createGradlePluginVariant(
|
||||
}
|
||||
}
|
||||
|
||||
registerValidatePluginTasks(variantSourceSet)
|
||||
|
||||
return variantSourceSet
|
||||
}
|
||||
|
||||
@@ -767,3 +776,35 @@ private fun GradleExternalDocumentationLinkBuilder.addWorkaroundForElementList(p
|
||||
}
|
||||
|
||||
private val SourceSet.embeddedConfigurationName get() = "${name}Embedded"
|
||||
|
||||
// We want to still validate Gradle types without applying `java-gradle-plugin`
|
||||
// Following configuration is a copy of configuration for the task done by the `java-gradle-plugin`
|
||||
fun Project.registerValidatePluginTasks(
|
||||
sourceSet: SourceSet
|
||||
): TaskProvider<ValidatePlugins> {
|
||||
val validatePluginsTask = tasks.register<ValidatePlugins>("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<JavaPluginExtension>()
|
||||
val toolchainService = project.extensions.getByType<JavaToolchainService>()
|
||||
launcher.convention(toolchainService.launcherFor(javaPluginExtension.toolchain))
|
||||
}
|
||||
|
||||
tasks.named(JavaBasePlugin.CHECK_TASK_NAME) {
|
||||
dependsOn(validatePluginsTask)
|
||||
}
|
||||
|
||||
tasks.named("test") {
|
||||
dependsOn(validatePluginsTask)
|
||||
}
|
||||
|
||||
return validatePluginsTask
|
||||
}
|
||||
|
||||
+1
@@ -77,3 +77,4 @@ publishing {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user