IDEA-插件開發踩坑記錄-第六坑-UAST依賴問題

背景

簡要說明:

UAST – Unified Abstract Syntax Tree

UAST (Unified Abstract Syntax Tree) is an abstraction layer on the?PSI?of different programming languages targeting the JVM (Java Virtual Machine). It provides a unified API for working with common language elements like classes and method declarations, literal values, and control flow operators.

大意:

UAST(統一抽象語法樹)是針對JVM (Java虛擬機)的不同編程語言的PSI上的抽象層。它提供了一個統一的API,用于處理公共語言元素,如類和方法聲明、文字值和控制流操作符。

你如果用到了PSI與JAVA相關的東西,都可能出現我這個問題;當然類似其他PSI抽象也可以參考這個解決辦法。

在JetBrains-intellij-idea?插件開發時,編譯正常,運行不正常的奇怪問題;

插件開發依賴版本(申明了依賴JAVA):

intellij {version.set("2024.1.7")type.set("IC") // Target IDE Platform# 此處申明了需要依賴javaplugins.set(listOf("com.intellij.java"))
}

問題現象

編譯正常,運行到?PsiMethod部分報錯;

異常堆棧關鍵信息

#c.i.i.p.PluginManager - com/intellij/psi/PsiMethod
java.lang.NoClassDefFoundError: com/intellij/psi/PsiMethod

......

Caused by: java.lang.ClassNotFoundException: com.intellij.psi.PsiMethod PluginClassLoader(plugin=PluginDescriptor

......

結論

插件依賴需要檢查三個步驟:JetBrains官方說明

  1. 確定 Plugin ID

  2. 檢查項目設置

  3. 在plugin.xml中定義;

如果編譯正常,運行出現 java.lang.NoClassDefFoundError一般而言是遺漏了第三個步驟。

解決辦法很簡單:在plugin.xml中添加如下內容:

<depends>com.intellij.java</depends>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71001.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71001.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71001.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小米火龍CPU和其他幾代溫度太高的CPU是由誰代工的

小米火龍CPU”并非小米自研芯片&#xff0c;而是指搭載在小米手機上的部分高通驍龍處理器因發熱問題被調侃為“火龍”。以下是幾款被稱為“火龍”的高通CPU及其代工情況&#xff1a; 驍龍810 驍龍810是高通歷史上最著名的“火龍”之一&#xff0c;采用臺積電20nm工藝代工。由于…

CSS3 圓角:實現與優化指南

CSS3 圓角&#xff1a;實現與優化指南 隨著網頁設計的發展&#xff0c;CSS3 圓角已經成為了現代網頁設計中不可或缺的元素之一。本文將詳細講解 CSS3 圓角的基本用法、實現方式以及優化技巧&#xff0c;幫助您在網頁設計中更好地運用這一功能。 一、CSS3 圓角基本用法 1.1 基…

windows服務器更新jar包腳本

【需求】Java每次發布新的版本都需要先kill掉原來的服務&#xff0c;然后再啟動新的包 有了這個腳本只需要把包替換掉&#xff0c;服務會自動kill 以6001 為例 完整的腳本如下 echo off REM 檢查端口 6001 是否被占用 netstat -ano | findstr :6001 > nul IF %ERRORLE…

視頻推拉流EasyDSS點播平臺云端錄像播放異常問題的排查與解決

EasyDSS視頻直播點播平臺是一個功能全面的系統&#xff0c;提供視頻轉碼、點播、直播、視頻推拉流以及H.265視頻播放等一站式服務。該平臺與RTMP高清攝像頭配合使用&#xff0c;能夠接收無人機設備的實時視頻流&#xff0c;實現無人機視頻推流直播和巡檢等多種應用。 最近&…

SpringBoot新聞推薦系統設計與實現

隨著信息時代的快速發展&#xff0c;新聞推薦系統成為用戶獲取個性化內容的重要工具。本文將介紹一個幽絡源的基于SpringBoot開發的新聞推薦系統&#xff0c;該系統功能全面&#xff0c;操作簡便&#xff0c;能夠滿足管理員和用戶的多種需求。 管理員模塊 管理員模塊為系統管…

【系統穩定性】1.11 QVM穩定性問題分析(一)

目錄 寫在前面 一,qvm進程異常 1.1 進程崩潰(Coredump) 1.2 進程卡死 1.3 進程重啟 二,qvm進程異常分析過程 寫在前面 在QVM(Quantum Virtual Machine)作為HOST QNX的Guest,同樣會遇到重啟、Watchdog(看門狗)等穩定性問題。 這里我們把qvm的異常歸類為兩類問題…

一次現網問題定位-線程池設置不當,導致流量上去后接口變慢

背景 公司大促活動流量上升&#xff0c;突然一線用戶反饋發消息特別慢&#xff0c;運維已經初步通過監控發現B服務接口大量超時&#xff0c;調用鏈如下圖。 發消息接口以前只經過A服務&#xff0c;后面為了防止客服罵人&#xff08;我們是客服系統&#xff09;&#xff0c;接…

【JavaWeb13】了解ES6的核心特性,對于提高JavaScript編程效率有哪些潛在影響?

文章目錄 &#x1f30d;一. ES6 新特性??1. ES6 基本介紹??2. 基本使用2.1 let 聲明變量2.2 const 聲明常量/只讀變量2.3 解構賦值2.4 模板字符串2.5 對象拓展運算符2.6 箭頭函數 &#x1f30d;二. Promise??1. 基本使用??2. 如何解決回調地獄問題2.1回調地獄問題2.2 使…

《幾何原本》命題I.2

《幾何原本》命題I.2 從一個給定的點可以引一條線段等于已知的線段。 設 A A A 為給定點&#xff0c; B C BC BC 為給定線段 連接 A B AB AB&#xff0c;作等邊 △ A B D \triangle ABD △ABD 以 B B B 為圓心&#xff0c; B C BC BC 為半徑作小圓 延長 D B DB DB 交小圓…

java數據結構_Map和Set_9.1

1. 搜索樹 1.1 概念 二叉搜索樹又稱二叉排序樹&#xff0c;它或者是一棵空樹&#xff0c;或者是具有以下性質的二叉樹&#xff1a; 若它的左子樹不為空&#xff0c;則左子樹上所有的結點都小于根結點的值若它的右子樹不為空&#xff0c;則右子樹上所有的結點都大于根結點的值…

Rust Async 并發編程:處理任意數量的 Future 與 Stream

1. Streams&#xff1a;異步數據流 1.1 Streams 與 Iterator 的異同 Rust 的 Iterator 是同步的&#xff0c;通過 next() 方法逐個獲取數據。而 Stream 是 async 版本的 Iterator&#xff0c;它使用 next().await 來獲取數據項。 示例&#xff1a;將 Iterator 轉換為 Stream…

藍橋杯 路徑之謎

路徑之謎 題目描述 小明冒充 XX 星球的騎士&#xff0c;進入了一個奇怪的城堡。 城堡里邊什么都沒有&#xff0c;只有方形石頭鋪成的地面。 假設城堡地面是 nnnn 個方格。如下圖所示。 按習俗&#xff0c;騎士要從西北角走到東南角。可以橫向或縱向移動&#xff0c;但不能斜著走…

3-5 WPS JS宏 工作表的移動與復制學習筆記

************************************************************************************************************** 點擊進入 -我要自學網-國內領先的專業視頻教程學習網站 *******************************************************************************************…

聊聊Java的SPI機制

個人自建博客地址 什么是SPI呢&#xff1f; SPI全稱Service Provider Interface&#xff0c;翻譯過來就是服務提供者接口。調用方提供接口聲明&#xff0c;服務提供方對接口進行實現&#xff0c;提供服務的一種機制&#xff0c;服務提供方往往是第三方或者是外部擴展。 下面…

langchain4j+local-ai小試牛刀

序 本文主要研究一下如何本地運行local-ai并通過langchain4j集成調用。 步驟 curl安裝 curl https://localai.io/install.sh | sh% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 21509 …

什么是“零日漏洞”(Zero-Day Vulnerability)?為何這類攻擊被視為高風險威脅?

正文 零日漏洞&#xff08;Zero-Day Vulnerability&#xff09; 是指軟件、硬件或系統中存在的、尚未被開發者發現或修復的安全漏洞。攻擊者在開發者意識到漏洞存在之前&#xff08;即“零日”內&#xff09;利用該漏洞發起攻擊&#xff0c;因此得名。這類漏洞的“零日”特性使…

鴻蒙 ArkUI 實現 2048 小游戲

2048 是一款經典的益智游戲&#xff0c;玩家通過滑動屏幕合并相同數字的方塊&#xff0c;最終目標是合成數字 2048。本文基于鴻蒙 ArkUI 框架&#xff0c;詳細解析其實現過程&#xff0c;幫助開發者理解如何利用聲明式 UI 和狀態管理構建此類游戲。 一、核心數據結構與狀態管理…

Milvus高性能向量數據庫與大模型結合

Milvus | 高性能向量數據庫&#xff0c;為規模而構建Milvus 是一個為 GenAI 應用構建的開源向量數據庫。使用 pip 安裝&#xff0c;執行高速搜索&#xff0c;并擴展到數十億個向量。https://milvus.io/zh Milvus 是什么&#xff1f; Milvus 是一種高性能、高擴展性的向量數據…

kettle插件-自定義函數-數據脫敏

平常我們在使用kettle抽取數據的時候會涉及到敏感數據邀請脫敏或者進行掩碼的需求&#xff0c;今天我們使用自定義函數插件來實現這些需求。 1、將自定義函數插件&#xff08;kettle-func-plugin.zip&#xff09;解壓后放到kettle的plugins目錄下面&#xff0c;然后重啟服務。…

LeetCode 每日一題 2025/2/24-2025/3/2

記錄了初步解題思路 以及本地實現代碼&#xff1b;并不一定為最優 也希望大家能一起探討 一起進步 目錄 2/24 1656. 設計有序流2/25 2502. 設計內存分配器2/26 1472. 設計瀏覽器歷史記錄2/27 2296. 設計一個文本編輯器2/28 2353. 設計食物評分系統3/1 131. 分割回文串3/2 2/24 …