Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.apache.tools.ant.filters.ReplaceTokens
- import org.jetbrains.changelog.Changelog
- import org.jetbrains.intellij.platform.gradle.TestFrameworkType
- plugins {
- id("java") // Java support
- alias(libs.plugins.kotlin) // Kotlin support
- alias(libs.plugins.intelliJPlatform) // IntelliJ Platform Gradle Plugin
- alias(libs.plugins.changelog) // Gradle Changelog Plugin
- alias(libs.plugins.kotlinSerialization) // Kotlinx serialization
- alias(libs.plugins.gradleDetektPlugin) // Gradle Detekt Plugin
- alias(libs.plugins.gradleDiktatPlugin) // Gradle Diktat Plugin
- }
- group = providers.gradleProperty("pluginGroup").get()
- version = providers.gradleProperty("pluginVersion").get()
- // Set the JVM language level used to build the project.
- kotlin {
- jvmToolchain(17)
- }
- // Configure project's dependencies
- repositories {
- mavenCentral()
- gradlePluginPortal()
- // IntelliJ Platform Gradle Plugin Repositories Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-repositories-extension.html
- intellijPlatform {
- defaultRepositories()
- }
- }
- // Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog
- dependencies {
- detektPlugins(libs.detektFormatting)
- implementation(libs.kotlinxSerializationJson)
- implementation(libs.sentry)
- testImplementation(libs.junit)
- // IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html
- intellijPlatform {
- create(providers.gradleProperty("platformType"), providers.gradleProperty("platformVersion"))
- // Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins.
- bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') })
- // Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file for plugin from JetBrains Marketplace.
- plugins(providers.gradleProperty("platformPlugins").map { it.split(',') })
- instrumentationTools()
- pluginVerifier()
- zipSigner()
- testFramework(TestFrameworkType.Platform)
- }
- }
- // Configure IntelliJ Platform Gradle Plugin - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-extension.html
- intellijPlatform {
- pluginConfiguration {
- version = providers.gradleProperty("pluginVersion")
- val changelog = project.changelog // local variable for configuration cache compatibility
- // Get the latest available change notes from the changelog file
- changeNotes = providers.gradleProperty("pluginVersion").map { pluginVersion ->
- with(changelog) {
- renderItem(
- (getOrNull(pluginVersion) ?: getUnreleased())
- .withHeader(false)
- .withEmptySections(false),
- Changelog.OutputType.HTML,
- )
- }
- }
- ideaVersion {
- sinceBuild = providers.gradleProperty("pluginSinceBuild")
- untilBuild = providers.gradleProperty("pluginUntilBuild")
- }
- }
- pluginVerification {
- freeArgs = listOf("-ip", file("ignored-problems.txt").absolutePath)
- ides {
- recommended()
- }
- }
- }
- // Configure Gradle Changelog Plugin - read more: https://github.com/JetBrains/gradle-changelog-plugin
- changelog {
- groups.empty()
- repositoryUrl = providers.gradleProperty("pluginRepositoryUrl")
- }
- // Configure detekt plugin.
- // Read more: https://detekt.github.io/detekt/kotlindsl.html
- detekt {
- config.setFrom("./detekt-config.yml")
- buildUponDefaultConfig = true
- }
- tasks {
- processResources {
- val tokens = mapOf(
- "sentry_dsn" to (System.getenv("SENTRY_DSN") ?: ""),
- )
- filesMatching("plugin_config.json") {
- filteringCharset = "UTF-8"
- filter<ReplaceTokens>("tokens" to tokens)
- }
- }
- wrapper {
- gradleVersion = providers.gradleProperty("gradleVersion").get()
- }
- detekt.configure {
- reports {
- html.required.set(true)
- xml.required.set(false)
- txt.required.set(false)
- }
- }
- }
Add Comment
Please, Sign In to add comment