【问题标题】:How to access classes which are dependencies of the current project in an IntelliJ plugin?如何访问 IntelliJ 插件中当前项目的依赖项的类?
【发布时间】:2012-09-14 12:38:38
【问题描述】:

我想通过当前项目的依赖项(Maven)访问一个类。就像在 IDEA 的代码窗口中访问类一样。 那么,是否可以从插件访问这些类?我现在可以访问所有项目数据和类,但不能访问外部依赖项。

【问题讨论】:

  • “访问”是什么意思?您应该已经能够看到类的内容(已编译)。您想查看代码吗?
  • 我必须使用它们。例如。项目根框架中有一个ObjectUtil类,我希望能在这里调用:ObjectUtil.save();该类不在当前项目中,而是在其依赖项中。
  • 您是否正在为 IDEA 编写自己的插件?你想在依赖中找到一个类,加载它并调用一些方法吗?
  • 使用com.intellij.psi.search.GlobalSearchScope#moduleWithDependenciesAndLibrariesScope 获取范围,然后在此范围中使用com.intellij.psi.JavaPsiFacade#findClass

标签: java maven plugins intellij-idea classpath


【解决方案1】:

冒着不理解问题的风险,如果有问题的类是 Maven 依赖项,并且 IntelliJ 已将依赖项放在类路径上,那么您只需要导入该类即可使用它:

import somepackage.ObjectUtil;
...
ObjectUtil.save();

但是,如果它被列为 <optional>true</optional> 或者它具有非编译 <scope>,则可能是依赖项不是必需的。

【讨论】:

  • @Benny 您已经通过导入 Maven 配置来配置您的 IDEA 项目,对吧?您可以检查依赖项是否出现在项目视图的“外部库”项下。您还可以打开“项目结构”窗口,在“模块”视图中选择您的模块,然后转到“依赖项”选项卡以查看依赖项是否正确显示在那里,具有“编译”范围。
猜你喜欢
  • 1970-01-01
  • 2017-10-17
  • 2020-06-24
  • 2020-10-10
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多