idea2023开发插件入门

idea2023开发插件入门

创建工程

通过 idea plugin 来创建工程
在这里插入图片描述

修改 开发语言

默认创建的工程是用scala开发的,但是我不会,就会java,所以改成java创建

  • build.gradle.kt 为 build.gradle
  • settings.gradle.kt 为 settings.gradle

build.gradle修改为以下:

plugins {id("java")//id("org.jetbrains.kotlin.jvm") version "1.8.21"id("org.jetbrains.intellij") version "1.13.3"
}group = "com.wtf"
version = "1.0-SNAPSHOT"repositories {maven { url 'https://maven.aliyun.com/repository/central/'}maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/google/' }maven { url 'https://maven.aliyun.com/repository/jcenter/'}maven { url 'https://maven.aliyun.com/repository/gradle-plugin'}mavenCentral()
}// Configure Gradle IntelliJ Plugin
// Read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html
intellij {version.set("2022.2.5")type.set("IC") // Target IDE Platform
}tasks.withType(JavaCompile) {options.encoding = 'UTF-8'sourceCompatibility = "17"targetCompatibility = "17"options.compilerArgs += ['-Xlint:unchecked', '-Xlint:deprecation', '-parameters']
}//以下原始的都不要
/*
tasks {// Set the JVM compatibility versionswithType<JavaCompile> {sourceCompatibility = "17"targetCompatibility = "17"}*/
/* withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {kotlinOptions.jvmTarget = "17"}*//*patchPluginXml {sinceBuild.set("222")untilBuild.set("232.*")}*/
/*    signPlugin {certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))privateKey.set(System.getenv("PRIVATE_KEY"))password.set(System.getenv("PRIVATE_KEY_PASSWORD"))}publishPlugin {token.set(System.getenv("PUBLISH_TOKEN"))}*//*}
*/

第一次编译会下载IC-idea,大概 600多M

helloworld插件开发

在这里插入图片描述
在这里插入图片描述
idea 会创建一个 ShowHello

public class ShowHello extends AnAction {@Overridepublic void actionPerformed(AnActionEvent e) {// TODO: insert action logic hereMessages.showMessageDialog("hello idea plugin","这里标题",Messages.getInformationIcon());}
}

编译运行

找到 intellij->runIde
在这里插入图片描述
运行成功会打开一个新的ide, 随他创建一个工程就行,因为我们创建的菜单在help下,直接在 help 菜单下找就行,效果如下 :
在这里插入图片描述

在这里插入图片描述
good luck!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python中如何定义及操作定义函数】

在Python中&#xff0c;函数是组织代码的一种方式&#xff0c;它可以将重复的代码块封装起来&#xff0c;使代码更加简洁、易读和易维护。定义和调用函数是编程中非常重要的基本技能。下面是详细的教学和示例。 定义函数 在Python中&#xff0c;可以使用def关键字来定义一个函…

英语恶补ing

ing的词组都有停下来做某事的感觉了。 second hand是形容词了。 wouldnt buy这里的would是情态动词&#xff0c;也是助动词 助动词不能单独使用&#xff0c;要搭配实义动词&#xff0c;这样才能构成谓语 情态动词&#xff08;modals&#xff09;在英语中有多种作用&#xff…

pytorch - RNN参数详解

在使用 PyTorch 训练循环神经网络&#xff08;RNN&#xff09;时&#xff0c;需要了解相关类和方法的每个参数及其含义。以下是主要的类和方法&#xff0c;以及它们的参数和作用&#xff1a; 1. torch.nn.RNN 这是 PyTorch 中用于定义简单循环神经网络&#xff08;RNN&#x…

随机森林算法详解

随机森林算法详解 随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法&#xff0c;通过构建多个决策树并将它们的预测结果结合起来&#xff0c;来提高模型的准确性和稳定性。随机森林在分类和回归任务中都表现出色&#xff0c;广泛应用于各类机器学习问题。本文…

【机器学习】基于稀疏识别方法的洛伦兹混沌系统预测

1. 引言 1.1. DNN模型的来由 从数据中识别非线性动态学意味着什么&#xff1f; 假设我们有时间序列数据&#xff0c;这些数据来自一个&#xff08;非线性&#xff09;动态学系统。 识别一个系统意味着基于数据推断该系统的控制方程。换句话说&#xff0c;就是找到动态系统方…

XXL-Job实战(一)

​需求介绍&#xff1a;构建一个分布式短信发送系统&#xff0c;应对双十一活动需向1000万用户快速推送营销短信的挑战&#xff0c;每条数据的业务处理逻辑为0.1s。对于普通任务来说&#xff0c;只有一个线程来处理 可能需要10万秒才能处理完&#xff0c;业务则严重受影响。 常…

5款堪称变态的AI神器,焊死在电脑上永不删除!

一 、AI视频合成工具——Runway&#xff1a; 第一款RunWay&#xff0c;你只需要轻轻一抹&#xff0c;视频中的元素就会被擦除&#xff0c;再来轻轻一抹&#xff0c;直接擦除&#xff0c;不喜欢这个人直接擦除&#xff0c;一点痕迹都看不出来。 除了视频擦除功能外&#xff0c;…

【AI大模型】Transformers大模型库(十):repetition_penalty惩罚系数

目录​​​​​​​ 一、引言 二、惩罚系数repetition_penalty 2.1 概述 2.2 使用说明 2.3 使用示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预训练大模型提供预测、训练等服务。 &#x1f917; T…

韩顺平0基础学Java——第27天

p548-568 明天开始坦克大战 Entry 昨天没搞明白的Map、Entry、EntrySet&#xff1a;//GPT教的 Map 和 Entry 的关系 1.Map 接口&#xff1a;它定义了一些方法来操作键值对集合。常用的实现类有 HashMap、TreeMap 等。 2. Entry接口&#xff1a;Entry 是 Map 接口的一个嵌…

WDF驱动开发-I/O目标与专用USBI/O目标

Windows 驱动程序框架 (WDF) 驱动程序转发 I/O 请求或创建新请求并将其发送到另一个驱动程序就被称为 I/O 目标。 当 功能驱动程序、Filter驱动程序、微型端口驱动程序 收到 I/O 请求时&#xff0c;驱动程序可能能够单独处理请求&#xff0c;或者可能需要其他驱动程序的帮助。…

【Ni板卡使用方法和连接SOC】

NI&#xff08;National Instruments&#xff09;板卡是一种用于数据采集、控制和测试的应用设备。以下是关于NI板卡的基本使用方法和连接SOC&#xff08;System on Chip&#xff0c;系统级芯片&#xff09;的步骤&#xff1a; 一、NI板卡的基本使用方法 了解板卡型号和规格&…

vivado TILE

TILE是包含一个或多个SITE对象的设备对象。可编程逻辑TILE 包括各种各样的对象&#xff0c;如SLICE/CLB、BRAM、DSP、I/O块、时钟资源&#xff0c;以及 GT块。从结构上讲&#xff0c;每个瓦片都有许多输入和输出&#xff0c;并且可编程 互连以将瓦片的输入和输出连接到任何其他…

实现一个简易动态线程池

项目完整代码&#xff1a;https://github.com/YYYUUU42/Yu-dynamic-thread-pool 如果该项目对你有帮助&#xff0c;可以在 github 上点个 ⭐ 喔 &#x1f970;&#x1f970; 1. 线程池概念 2. ThreadPoolExecutor 介绍 2.1. ThreadPoolExecutor是如何运行&#xff0c;如何同时…

elementUI的el-table自定义表头

<el-table-column label"昨日仪表里程(KM)" align"left" min-width"190" :render-header"(h, obj) > renderHeader(h, obj, 参数)" > <template slot-scope"scope"> <span>{{ scope.row.firstStartMil…

流程图工具评测:十大热门软件对比

流程图是一种用图形符号和箭头表示工作流程的图形表示方法。它展示了一系列相互关联的步骤&#xff0c;以显示过程中数据或物质的流动、决策点和操作步骤。流程图广泛用于各种领域&#xff0c;包括业务流程、软件开发、工程等&#xff0c;以帮助人们更好地理解和分析工作流程。…

MongoDB中自动增长ID详解:实现、应用及优化

在MongoDB中&#xff0c;自动增长的功能主要通过使用数据库的ObjectId或自定义的序列来实现。ObjectId是MongoDB默认的主键类型&#xff0c;它是唯一的并且具有一定的排序特性。然而&#xff0c;在某些场景下&#xff0c;可能需要使用自定义的自动增长ID&#xff0c;例如在某些…

大模型应用开发实践:RAG与Agent

RAG planning是任务拆解的一些方法。 Agent RAG现在基本上推荐LangChain开发框架。而Agent目前没有一个通用的好的开发框架/范式。 学习路径

程序员做电子书产品变现的复盘(10)

前面提到了我对竞争对手发起的投诉&#xff0c;没想到这竟然引发了一场规模庞大的战争&#xff0c;意外地促进了我国版权合规化的进步 。 以前&#xff0c;每当收到版权方的通知&#xff0c;无论APP有多受欢迎&#xff0c;我都会立即下架&#xff0c;一方面是为了避免法律风险…

达梦8 兼容MySQL语法支持非分组项作为查询列

MySQL 数据库迁移到达梦后&#xff0c;部分GROUP BY语句执行失败&#xff0c;报错如下&#xff1a; 问题原因&#xff1a; 对于Oracle数据库&#xff0c;使用GROUP BY时&#xff0c;SELECT中的非聚合列必须出现在GROUP BY后面&#xff0c;否则就会报上面的错误&#xff0c;达梦…

使用宝塔面板搭建Flask项目保姆级喂饭教程

目录 零.前言 一.准备工作 1.1创建requirements.txt文件 1.2将项目打包为压缩文件 1.3租一台服务器 1.4部署宝塔面板 二.宝塔面板(服务器)上的操作 2.1将本地Flask项目上传到服务器 2.2添加Python项目 2.3配置Python项目 2.4配置Nginx 2.5宝塔面板放行端口 2.6在服…