当前位置: 首页 > news >正文

使用maven框架搭建一个IDEA插件项目

以下是使用 Maven 框架搭建 IDEA 插件项目的步骤:

  1. 打开 IDEA,点击 File -> New -> Project,选择 Maven。

  2. 在弹出的 New Project 窗口中,选择 Maven,然后选择 Create from archetype,找到 Maven 插件开发的 archetypes,选择 IntelliJ IDEA Plugin Archetype。

  3. 填写 GroupId、ArtifactId、Version 等基本信息,然后点击 Next。

  4. 在下一个窗口中,可以选择插件类型,如 Action、Tool Window、Inspection 等,选择合适的类型并填写信息,然后点击 Next。

  5. 在下一个窗口中,可以选择项目配置,如 JDK 版本、项目名称、包名等,填写好后点击 Next。

  6. 最后一步是确认信息,检查无误后点击 Finish,等待 IDEA 创建项目。

  7. 项目创建完毕后,可以在 pom.xml 文件中添加插件依赖,配置插件信息等。

现在,你已经成功搭建了一个 IDEA 插件项目,可以开始编写代码了。


步骤如下:

  1. 在IDEA中新建一个Maven项目,选择Create from archetype,选择org.jetbrains.intellij.idea-plugin,点击Next

  2. 输入你的项目名称,点击Next

  3. 输入你的groupIdartifactId,点击Next

  4. 点击Finish,完成项目的创建。

  5. pom.xml文件中,添加需要的依赖。例如,如果你需要使用JUnit进行测试,则需要添加以下依赖:

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>

  1. src/main目录下创建一个resources/META-INF/plugin.xml文件,这个文件包含了你的插件的配置信息。

  2. src/main目录下创建你的插件代码,在这里可以实现你需要的功能。

  3. pom.xml文件中添加maven-jar-plugin插件,以便能够生成插件文件:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.4</version><configuration><archive><manifest><mainClass>com.intellij.idea.plugin.hello.HelloWorldApplicationComponent</mainClass><id>com.intellij</id><name>hello-idea-plugin</name><version>1.0-SNAPSHOT</version></manifest></archive></configuration></plugin></plugins>
</build>

  1. pom.xml文件中添加maven-assembly-pluginmaven-shade-plugin插件,以便能够将所有的依赖项打包到一个jar文件中:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.3.0</version><configuration><archive><manifest><mainClass>com.intellij.idea.plugin.hello.HelloWorldApplicationComponent</mainClass><id>com.intellij</id><name>hello-idea-plugin</name><version>1.0-SNAPSHOT</version></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>2.4.3</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><artifactSet><includes><include>*:*</include></includes></artifactSet><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.intellij.idea.plugin.hello.HelloWorldApplicationComponent</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins>
</build>

  1. 执行mvn clean package命令,生成插件的jar文件。

  2. 在IDEA中选择File > Settings,选择Plugins,点击Install plugin from disk,选择你生成的插件的jar文件,点击OK


搭建步骤如下:

  1. 创建一个Maven项目,选择idea-plugin-archetype作为项目模板。
mvn archetype:generate 
-DarchetypeGroupId=org.apache.maven.archetypes 
-DarchetypeArtifactId=maven-archetype-quickstart 
-DarchetypeVersion=1.4 
-DgroupId=com.example 
-DartifactId=my-idea-plugin 
-DinteractiveMode=false 
-DarchetypeCatalog=local

  1. 修改pom.xml文件,添加以下插件依赖:
<dependencies><!--添加依赖--><dependency><groupId>com.intellij</groupId><artifactId>ideaIU</artifactId><version>2019.3.4</version><scope>provided</scope></dependency>
</dependencies><build><plugins><!--添加插件--><plugin><groupId>org.jetbrains.intellij</groupId><artifactId>idea-plugin</artifactId><version>0.4.17</version><extensions>true</extensions><configuration><id>${project.artifactId}</id><name>${project.name}</name><description>${project.description}</description><vendor>Email</vendor><changeNotes>${project.version}</changeNotes><productDescriptor><code>Java</code><since-build>201.0</since-build><until-build>201.*</until-build></productDescriptor></configuration></plugin></plugins>
</build>

  1. 在src/main目录下创建resources/META-INF/plugin.xml文件。

  2. 编写插件功能代码。

  3. 在IDEA中打开项目,右键点击pom.xml文件,选择Maven -> Generate Sources and Update Folders。

  4. 在IDEA中选择菜单栏中的Run -> Edit Configurations,然后点击左上角的“+”号,选择“Plugin”来创建一个新的运行配置。

  5. 点击运行按钮来启动插件。在启动后的IDEA中,可以看到插件已经成功安装并开始工作。

以上就是使用Maven框架搭建一个IDEA插件项目的步骤。

相关文章:

使用maven框架搭建一个IDEA插件项目

以下是使用 Maven 框架搭建 IDEA 插件项目的步骤&#xff1a; 打开 IDEA&#xff0c;点击 File -> New -> Project&#xff0c;选择 Maven。 在弹出的 New Project 窗口中&#xff0c;选择 Maven&#xff0c;然后选择 Create from archetype&#xff0c;找到 Maven 插件…...

第二届全国高校计算机技能竞赛——C++赛道 题解

Powered by:NEFU AB-IN Link 文章目录 第二届全国高校计算机技能竞赛——C赛道A 互不侵犯题意思路代码 B 奖学金题意思路代码 C 领导者题意思路代码 D 空调题意思路代码 E 字符操作变换题意思路代码 第二届全国高校计算机技能竞赛——C赛道 A 互不侵犯 题意 在象棋中&#xff…...

八大排序源码(含优化)

文章目录 1、直接插入排序2、希尔排序3、选择排序4、冒泡排序5、堆排序6、快速排序快速排序递归实现霍尔法挖坑法前后指针法快速排序小区间优化 快速排序非递归实现 7、归并排序归并排序递归实现归并排序非递归 8、计数排序 大家好&#xff0c;我是纪宁&#xff0c;这篇文章是关…...

单调队列---数据结构与算法

简介 队列也是一种受限制的线性表和栈相类似&#xff0c;栈是先进后出&#xff0c;而队列是先进先出&#xff0c;就好像一没有底的桶&#xff0c;往里面放东西&#xff0c;如图 在这里也是用数组来实现队列&#xff0c;用数组实现的叫做顺序队列 队列的数组模拟 const int N…...

小程序如何使用自定义组件

使用自定义组件的步骤如下&#xff1a; 创建自定义组件&#xff1a;在小程序项目根目录下的 components 文件夹中创建一个文件夹&#xff0c;然后在该文件夹中创建一个 .json 文件、一个 .wxml 文件和一个 .js 文件&#xff0c;这三个文件分别对应组件的配置、模板和逻辑。 在…...

归并排序含非递归版

目录 1.归并排序的原理 2.实现归并排序 2.1框架 2.2区间问题和后序遍历 2.3归并并拷贝 2.4归并排序代码 2.5测试 3.非递归实现归并排序 3.1初次实现 3.2测试 3.3修改 3.4修改测试 1.归并排序的原理 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治…...

项目进展(八)-编写代码,驱动ADS1285

一、代码 根据芯片的数据手册编写部分驱动&#xff0c;首先看部分引脚的波形&#xff1a; DRDY: CS&#xff1a; 首先在代码初始化时连续写入三个寄存器&#xff1a; void WriteReg(uint8_t startAddr, uint8_t *regData, uint8_t number) {uint8_t i0;// 循环写number1次…...

【MyBatis-Plus】快速精通Mybatis-plus框架—快速入门

大家在日常开发中应该能发现&#xff0c;单表的CRUD功能代码重复度很高&#xff0c;也没有什么难度。而这部分代码量往往比较大&#xff0c;开发起来比较费时。 因此&#xff0c;目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…...

docker 安装kafka

运行容器 zookeeper: [rootk8s-master ~]# docker run -d --restartalways --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime zookeeper c603f292813cfd6e2b16fff88a9767cc86fc9bba34d82…...

容器内获得apiserver地址

1.容器的Env的KUBENETES_SERVICE_HOST字段 roottomcat01-69fc8f859b-w9btn:/tmp# env | grep KUBERNETES_SERVICE_HOST10.96.0.1 KUBERNETES_SERVICE_HOST10.96.0.12.通过域名查询 nslookup getent hosts roottomcat01-69fc8f859b-w9btn:/tmp# getent hosts kubernetes.def…...

linux服务端c++开发工具介绍(vscode版)

本文适合于有一定c开发经验&#xff0c;但是还不明确如何到linux服务端开发程序的同学。 一、vscode 几年前用的是ssh到云服务上&#xff0c;再用vim在云上开发的形式 ssh dongbeijing.dbj11.158.142.176 vim hello.c 现今&#xff0c;由于vscode比较好用&#xff0c;这几年…...

Linux常用命令大全

Linux常用命令大全 一、文件&目录管理1. 文件和目录操作命令2. 查看文件及内容处理命令3. 文件压缩及解压缩命令4. 搜索文件命令5. 其他 二、Linux 软件包管理三、用户管理1. 用户管理2. 查看系统用户登陆信息的命令 四、进程管理五、网络通信1. 基础网络操作命令2. 深入网…...

Python中取2023, 9, 1——2023, 10, 31的全部时间

使用datetime.date()函数定义了开始和结束日期。然后&#xff0c;我们使用datetime.timedelta()类创建了一个时间范围&#xff0c;其中n表示从开始日期到结束日期之间的天数。最后&#xff0c;我们使用一个for循环迭代时间范围内的日期&#xff0c;并打印每个日期。示例代码演示…...

创建django文件

1、在指定目录里打开终端&#xff0c;输入D:\Softwares\Anaconda3\envs\pytorch\Scripts\django-admin .exe startproject 名称 &#xff0c;即可在对应目录里创建django文件。...

全排列[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个不含重复数字的数组nums&#xff0c;返回其所有可能的全排列。你可以按任意顺序返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例…...

mybatise-plus的id过长问题

一、问题情景 笔者在做mp插入数据库(id已设置为自增)操作时&#xff0c;发现新增数据的id过长&#xff0c;结果导致前端JS拿到的数据出现了精度丢失问题&#xff0c;原因是后端id的类型是Long。在网上查了一下&#xff0c;只要在该属性上加上如下注解就可以 TableId(value &q…...

图示矩阵分解

特征值与特征向量 设 A A A 是 n 阶矩阵&#xff0c;如果存在数 λ \lambda λ 和 n 维非零列向量 x x x&#xff0c;满足关系式&#xff1a; A x λ x ( 1 ) Ax \lambda x\quad\quad(1) Axλx(1) 则数 λ \lambda λ 称为矩阵 A A A 的特征值&#xff0c;非零向量 x…...

六、互联网技术——数据存储

文章目录 一、存储系统层次结构二、按照重要性分类三、磁盘阵列RAID三、RAID基础四、磁盘阵列分级五、数据备份与恢复六、容灾与灾难恢复 一、存储系统层次结构 常见的三层存储体系结构如下图所示&#xff0c;分为高速缓冲存储器、主存储器和外存储器。 二、按照重要性分类 …...

六、vpp 流表+负载均衡

草稿&#xff01;&#xff01;&#xff01; vpp node其实就是三个部分 1、plugin init 2、set command 3、function 实现功能&#xff0c;比如这里的流表 今天我们再用VPP实现一个流表的功能 一、流表 1.1流表----plugin init VLIB_REGISTER_NODE 注册流表节点 // 注册流…...

word已排序好的参考文献,插入新的参考文献,序号更新

原排序好的文献序号。 现在在3号后面插入一个新文献。4&#xff0c;5号应该成为5&#xff0c;6 这时在3号后面&#xff0c;回车&#xff0c;就会自动的增长。如下图&#xff1a; 但是如果手滑&#xff0c;把[4]删除了如何排序&#xff1f;&#xff1f; 如下图&#xff1a; …...

PC市场转型:从性能竞赛到价值回归的产业变革

1. 市场格局的深层演变&#xff1a;从“性能至上”到“够用就好”如果你在2012年前后关注过PC市场&#xff0c;应该能清晰地感受到一股寒流。那几年&#xff0c;行业里最热门的话题不再是英特尔又发布了多快的处理器&#xff0c;或者英伟达的显卡性能提升了多少百分比&#xff…...

AI编程助手实战指南:从GitHub Copilot到全流程开发效率提升

1. 项目概述&#xff1a;当AI遇见编码的“氛围感”最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的仓库&#xff0c;叫Sunil6512/awesome-ai-vibe-coding。光看名字&#xff0c;awesome-ai-vibe-coding&#xff0c;就透着一股子新潮味儿。它不是一个具体的工具或者框架&am…...

Andorid下给PDF盖骑缝章的方法—安卓手机批量盖骑缝章的方法

Andorid下给PDF盖骑缝章的方法&#xff0c;安卓手机批量盖骑缝章的方法。一、准备印章图片1。不需要制作为透明的印章&#xff0c;用白底Png格式图片即可&#xff0c;白底图片盖章时软件会自动透明并融合。2。印章边线与图片四边不要有空隙&#xff0c;如下&#xff1a;错误的&…...

告别IDEA编译警告:深入解析JDK版本过时问题与多维度解决方案

1. 当IDEA开始"抱怨"&#xff1a;那些烦人的编译警告从哪来&#xff1f; 每次打开老项目&#xff0c;总能看到那个熟悉的黄色警告&#xff1a;"Warning:java: 源值1.5已过时&#xff0c;将在未来所有发行版中删除"。这个提示就像个唠叨的老朋友&#xff0c…...

全方位降本增效,Captain AI重构OZON运营成本结构

当前OZON市场竞争日趋激烈&#xff0c;人力、物流、广告、库存等各项运营成本持续攀升&#xff0c;利润空间不断压缩&#xff0c;“降本”与“增效”成为商家生存发展的核心命题。不同于单一工具仅能优化某一项成本&#xff0c;Captain AI立足OZON商家全运营场景&#xff0c;以…...

光纤偏振测量:从琼斯矢量到庞加莱球,六种工具深度解析与工程实践

1. 从一道周五小测题说起&#xff1a;光纤测量中的偏振态表征上周五&#xff0c;我在整理旧资料时&#xff0c;翻到了EE Times在2015年发布的一篇“周五小测”文章&#xff0c;主题是光纤光学测量。其中第一道题就很有意思&#xff0c;它问的是&#xff1a;“以下哪种工具不能用…...

GDScript Mod Loader:为Godot游戏打造专业模组生态的完整指南

1. 项目概述&#xff1a;为你的Godot游戏注入社区活力如果你是一名使用Godot引擎的独立游戏开发者&#xff0c;或者是一位热衷于为喜爱的游戏创造新内容的玩家&#xff0c;那么“模组”这个概念你一定不陌生。模组&#xff0c;或者说Mod&#xff0c;是游戏社区生命力的重要源泉…...

阴阳师御魂自动刷脚本:5分钟快速上手的智能挂机指南

阴阳师御魂自动刷脚本&#xff1a;5分钟快速上手的智能挂机指南 【免费下载链接】yysScript 阴阳师脚本 支持御魂副本 双开 项目地址: https://gitcode.com/gh_mirrors/yy/yysScript 还在为重复刷御魂副本而感到疲惫吗&#xff1f;yysScript智能挂机脚本是专为《阴阳师》…...

Tarjan算法:从DFS序到强连通分量的寻路指南(附C++实战与缩点技巧)

1. 从迷宫探索到强连通王国&#xff1a;Tarjan算法的生活隐喻 想象你正在探索一座巨大的迷宫&#xff0c;手里拿着粉笔和记事本。每走到一个新的岔路口&#xff0c;你就在墙上标记数字&#xff08;第一个到的路口标1&#xff0c;第二个标2...&#xff09;&#xff0c;这就是DFS…...

ARM DAP调试架构核心机制与实践指南

1. ARM调试访问端口(DAP)架构解析调试访问端口(Debug Access Port, DAP)是ARM调试架构中的核心组件&#xff0c;它作为调试器与芯片内部调试资源的桥梁&#xff0c;提供了标准化的访问接口。DAP的设计遵循ARM Debug Interface v5.1(ADIv5.1)规范&#xff0c;支持两种物理接口协…...