创建一个最简DevEco插件
本文将创建一个最简单的DevEco IDE插件。从创建到开发,最后安装运行。这个插件是右侧窗口,类似于Previewer窗口

演示所用开发环境配置
因为DevEco编辑器是基于IDEA开发的,所以开发插件我们用IDEA
DevEco Studio是DevEco Studio 6.0.0 Release
IDEA版本是IntelliJ IDEA 2025.2.5 (Community Edition)
打开IntelliJ IDEA,打开Settings->Plugins->Marketplace 搜索devkit,下载安装插件:Plugin DevKit
演示电脑是:MacBook Pro(M1)
创建插件工程
我们将使用kotlin开发插件
-
打开
IntelliJ IDEA, File->Project Structure...->Platform Settings->SDKS,点击加号创建新的JDK,选择下载JDK(Version:21,Vendor:JetBrains Runtime 21.0.9) -
打开
IntelliJ IDEA->New Project,因为安装了Plugin DevKit 插件,所以左边有IDE Plugin选项,设置JDK为上面下载的jbr-21,其他信息随便填即可 -
修改
build.gradle.kts 中的sinceBuild = "243",把整个tasks删除
最终文件内容:
plugins {
id("java")
id("org.jetbrains.kotlin.jvm") version "2.1.0"
id("org.jetbrains.intellij.platform") version "2.7.1"
}
group = "com.hehuoya"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
intellijPlatform {
defaultRepositories()
}
}
// Configure IntelliJ Platform Gradle Plugin
// Read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin.html
dependencies {
intellijPlatform {
create("IC", "2025.1.4.1")
testFramework(org.jetbrains.intellij.platform.gradle.TestFrameworkType.Platform)
}
}
intellijPlatform {
pluginConfiguration {
ideaVersion {
sinceBuild = "243"
}
changeNotes = """
Initial version
""".trimIndent()
}
}
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
}
}
直接运行会先自动下载一个调试用的idea,然后会自动打开idea,我们用这个idea随便创建一个java项目,进入设置,查看已安装插件,会看到我们的插件已经安装在里面了。
我们写一个简单插件,能看到页面效果
创建文件:src/main/kotlin/FirstToolWindow.kt,内容如下:
import ai.grazie.utils.json.JSONObject
import com.intellij.openapi.project.Project
import com.intellij.openapi.wm.ToolWindow
import com.intellij.openapi.wm.ToolWindowFactory
import com.intellij.ui.JBColor
import com.intellij.ui.content.ContentFactory
import java.awt.Font
import javax.swing.JLabel
import javax.swing.JPanel
import kotlin.apply
class FirstToolWindow: ToolWindowFactory {
override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) {
val factory = ContentFactory.getInstance()
// 第一个面板
createPanel("Hello cooder.fun", "tab1", JBColor.BLUE, false, factory, toolWindow)
// 第二个面板
createPanel("Hello hehuoya.com", "tab2", JBColor.RED, true, factory, toolWindow)
}
private fun JSONObject.getJSONArray(string: String) {}
private fun createPanel(
text: String,
displayName: String,
color: JBColor,
isLockable: Boolean,
factory: ContentFactory,
toolWindow: ToolWindow
) {
val panel = JPanel()
val label = JLabel(text).apply {
font = Font("宋体", Font.BOLD, 32)
foreground = color
}
panel.add(label)
val content = factory.createContent(panel, displayName, isLockable)
toolWindow.contentManager.addContent(content)
}
}
最后一个比较重要的文件是/src/main/resources/META-INF/plugin.xml
修改里面的extensions节点内容:
<extensions defaultExtensionNs="com.intellij">
<toolWindow
factoryClass="FirstToolWindow"
id="cooder-right"
canCloseContents="false"
anchor="right"
icon="AllIcons.Actions.GeneratedFolder">
</toolWindow>
</extensions>
运行效果如上图
构建发布插件
》点击 idea上面的Build->Build Project,成功后在build/libs下面就是安装包
打开DevEco编辑器,打开设置->Plugins->Installed 右边有个设置按钮,点一下选择Install Plugin from Disk,选择我们刚才编译好的插件即可安装成功
安装完成后随便打开一个工程即可看到右侧贴边的插件
后续
接下来就是了解kotlin/java的UI开发了,主要了解awt和swing