【问题标题】:How to specify library dependencies for an IntelliJ IDEA plugin?如何为 IntelliJ IDEA 插件指定库依赖项?
【发布时间】:2014-06-07 22:38:27
【问题描述】:

我正在为 IntelliJ IDEA 开发一个插件。我的方法是在 IDEA 中创建一个插件项目,然后将其打包到一个带有适当 META-INF/plugin.xml 的 jar 中,然后从 jar 中安装插件。

问题是我想添加对org.scala-lang:scala-library:2.11.0 的依赖。我在 IDEA 项目中将此指定为库依赖项,但此信息似乎从未传递给生成的 JAR。

如何以 IntelliJ IDEA 能够识别的方式包含这些信息?

【问题讨论】:

  • “这些信息似乎永远不会传递给生成的 JAR”是什么意思?你在看什么?你遇到了什么错误?
  • documented structure of the plugin jar 没有提供任何方法来指定 jar 中的库依赖项。我希望有其他方法可以做到这一点(可能是一些涉及插件依赖的聪明方法)。
  • 五秒钟的网络搜索返回了这个,我认为这与你正在做的非常接近:confluence.jetbrains.com/display/SCA/…
  • 嗯,有点相关,但我真的不想依赖 Scala 插件,而只想依赖 Scala 库。
  • 嗯,目前我实际上正在使用 SBT,但是,是的,该库是从 Maven 存储库中检索的,其方式与 Maven 相同。但是,使用实际的 Maven 是一种选择。

标签: intellij-idea intellij-plugin


【解决方案1】:

据我了解,您希望将一些库(例如 scala 库)与您的插件捆绑在一起。 这很简单。

  1. 转到项目设置,选择模块并转到依赖项选项卡。将要捆绑的库的范围设置为“编译”。在这个例子中,它是“checker-framework”库。 'groovy-2.3.6' 库将不会被捆绑,因为它的范围设置为 'Provided'。保存更改。

  2. 为部署准备插件

  3. 然后你在项目的根目录中获得了插件,压缩,准备好部署(上传到 repo 或本地安装)。它将包含lib 文件夹和所有必要的jar。

【讨论】:

    【解决方案2】:

    官方支持的插件依赖管理解决方案是使用 Gradle 和 gradle-intellij-plugin,通过 Gradle 的 dependenciesintellij.plugins 入口点。如果您想添加对工件的依赖项(例如托管在 Maven Central 上),请像通常在基于 Gradle 的项目中一样配置 dependencies

    buildscript {
        repositories {
            mavenCentral()
        }
    }
    
    dependencies {
        compile("org.scala-lang:scala-library:2.11.0")
    }
    

    intellij.plugins 入口点将在当前项目中添加一个工件,以及一个<depends> 标记到您的plugin.xml 文件中。要与您自己的插件一起安装外部插件,例如,如果您使用 Plugin Extensions 功能(假设插件托管在 JetBrains Plugin Repository 上),请使用以下 sn-p:

    plugins {
        id "org.jetbrains.intellij" version "0.2.13"
    }
    
    intellij {
        //...
        plugins "org.intellij.scala:2017.2.638"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 2016-03-05
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      相关资源
      最近更新 更多