跳到主内容
文章阅读

idea plugin 开发升级到2.0.0.beta版本

2025/12/1673 次阅读6 分钟

文档

修改settings.gradle.kts

添加maven("https://oss.sonatype.org/content/repositories/snapshots/")


pluginManagement {
    repositories {
        maven("https://oss.sonatype.org/content/repositories/snapshots/")
    }
}

添加repositories



repositories {
    mavenCentral()

    //新增
    intellijPlatform {
        defaultRepositories()
        releases()
        marketplace()
    }
}

修改plugin id


 id("org.jetbrains.intellij.platform") version "2.0.0-beta7"

修改 dependencies


dependencies {
    #新增
    intellijPlatform {
        rustRover("2024.1.2") # 平台版本,按需修改
        bundledPlugins("com.jetbrains.rust","JavaScriptBase") #内置插件依赖
        instrumentationTools() #必要的
    }
}

完整的示例


import org.jetbrains.changelog.Changelog
import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType
import org.jetbrains.intellij.platform.gradle.models.ProductRelease
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import java.util.*

plugins {
    kotlin("jvm") version "2.0.0"
    id("org.jetbrains.changelog") version "2.2.0"
    id("org.jetbrains.intellij.platform") version "2.0.0-beta7"

}

group = "shop.itbug"
version = "1.0.3"

repositories {
    mavenCentral()
    intellijPlatform {
        defaultRepositories()
        releases()
        marketplace()
    }
}

dependencies {
    intellijPlatform {
        intellijIdeaUltimate("2024.1.4")
        bundledPlugins("org.jetbrains.kotlin", "JavaScript")
        pluginVerifier()
        zipSigner()
        instrumentationTools()
    }
}


val changeLog = provider {
    changelog.renderItem(
        changelog
            .getOrNull(project.version as String) ?: changelog.getUnreleased()
            .withHeader(false)
            .withEmptySections(false),
        Changelog.OutputType.HTML
    )
}


tasks {
    withType<JavaCompile> {
        sourceCompatibility = "17"
        targetCompatibility = "17"
    }
    withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
        compilerOptions {
            jvmTarget.set(JvmTarget.JVM_17)
            languageVersion.set(KotlinVersion.KOTLIN_2_0)
        }
    }

    patchPluginXml {
        sinceBuild.set("232")
        changeNotes.set(changeLog)
    }

    runIde {
        jvmArgs = listOf("-XX:+AllowEnhancedClassRedefinition")
    }

    signPlugin {
        certificateChain.set(System.getenv("certificateChain".uppercase(Locale.getDefault())))
        privateKey.set(System.getenv("privateKey".uppercase(Locale.getDefault())))
        password.set(System.getenv("password".uppercase(Locale.getDefault())))
    }

    publishPlugin {
        token.set(System.getenv("PUBLISH_TOKEN"))
    }

    dependencies {
        implementation("cn.hutool:hutool-all:5.8.15")
        implementation("com.alibaba.fastjson2:fastjson2:2.0.25")
        implementation("com.alibaba.fastjson2:fastjson2-kotlin:2.0.25")
    }

}

intellijPlatform {
    verifyPlugin {
        ides {
            recommended()
            local(file("/Applications/IntelliJ IDEA Ultimate.app"))
            local(file("/Users/ldd/Applications/IntelliJ IDEA Ultimate.app"))
            select {
                types = listOf(IntelliJPlatformType.IntellijIdeaUltimate)
                channels = listOf(ProductRelease.Channel.RELEASE, ProductRelease.Channel.EAP)
                sinceBuild = "232"
            }
        }
    }
}


changelog {
    version = project.version as String
    path = file("CHANGELOG.md").canonicalPath
    groups.empty()
}


返回顶部