override fun apply()

in plugin/src/main/kotlin/org/jetbrains/qodana/QodanaPlugin.kt [29:70]


    override fun apply(project: Project) {
        if (Version.parse(project.gradle.gradleVersion) < Version.parse("6.6")) {
            throw PluginInstantiationException("gradle-qodana-plugin requires Gradle 6.6 and higher")
        }

        // `qodana {}` Extension
        val extension =
            project.extensions.create(QodanaPluginConstants.EXTENSION_NAME, QodanaPluginExtension::class.java)
                .also { ext ->
                    ext.projectPath.convention(project.projectDir.canonicalPath)
                    ext.resultsPath.convention(project.provider {
                        "${ext.projectPath.get()}/build/qodana/results"
                    })
                    ext.cachePath.convention(project.provider {
                        "${ext.projectPath.get()}/build/qodana/cache"
                    })
                    ext.qodanaPath.convention(project.provider {
                        "${ext.projectPath.get()}/build/qodana/${Installer.getLatestVersion()}/qodana${Installer.getExtension()}"
                    })
                }

        // `qodanaScan` task
        project.tasks.register(QodanaPluginConstants.QODANA_SCAN_TASK_NAME, QodanaScanTask::class.java) {
            group = QodanaPluginConstants.GROUP_NAME
            description = "Starts Qodana Inspections in a Docker container"

            projectDir.convention(project.provider {
                project.file(extension.projectPath)
            })
            resultsDir.convention(project.provider {
                project.file(extension.resultsPath)
            })
            cacheDir.convention(project.provider {
                project.file(extension.cachePath)
            })
            qodanaPath.convention(project.provider {
                project.file(extension.qodanaPath)
            })
            arguments.convention(listOf())
            useNightly.convention(false)
        }
    }