0

目前,我为插件构建的结构有点混乱:我正在使用普通的 IDEA 项目文件在本地构建插件。当我将它推送到 repo 并且 travis-ci 正在构建它时,它使用 maven pom.xml,因为要让 travis 工作,它总是必须下载完整的 IDEA 源代码。

虽然这可行,但这有几个缺点:

  1. 我需要使两个内置机制保持最新。这是
    • 当一个新的 IDEA 版本发布时(每隔几周),我需要在 maven 和我的 IDEA 设置中更改 SDK
    • 当我添加新库、更改资源等时,我还需要对这两个设置执行此操作
  2. 当我打开 IDEA Maven 插件时遇到了问题,因为它看到pom.xml并干扰了我的本地构建。关闭它意味着我无法使用具有跟踪依赖关系功能的 Maven 下载库。

我看到 Gradle 有一个“idea”插件,在谷歌搜索后,我觉得 Gradle 是这些天的首选。我已经看到了将 Gradle 支持添加到 IntelliJ IDEA 的最佳方法,我确信我可以使用那里的答案将我pom.xmlbuild.gradle.

但是,也许其他人已经这样做了,或者可以提供更好的方法。我正在寻找的是一种在本地和 Travis-CI 上构建我的插件的统一方式。

一些细节

要编译一个 IDEA 插件,您需要它的 SDK,您可以通过安装 IDEA 或下载完整包来访问它。在本地,我正在使用我的 SDK 安装。使用 Travis,我构建的 maven 具有下载tar.gz和提取它的规则。

4

1 回答 1

1

事实证明,特别是对于构建 IntelliJ 插件,Gradle 似乎有很多优势。这主要是由于 Gradle 的出色 IntelliJ 插件使编译插件变得如此容易。使用 Gradle,我可以将超过 220 行的 Maven 构建变成几行易于阅读的 Gradle 代码。主要优点是

  1. 它负责下载和使用正确的 IDEA SDK,而您只需指定 IDEA 版本。
  2. 它可以将您的插件发布到您的 Jetbrains 存储库,并使其立即可供所有用户使用
  3. 它修复了你的项目plugin.xml,例如你可以使用一个中央版本号gradle.build,它会保持plugin.xml最新,或者它可以包括变更说明
  4. 它与 Travis-CI 无缝集成

如何将 Gradle 与现有的 IDEA 插件一起使用

手动进行。这要容易得多。

  1. 创建一个空build.gradle文件
  2. 看一个例子并通读自述文件(最后有很多build.gradle项目)以了解每个 intellij 属性的作用。
  3. 通过以下方式使其适应您的插件
    1. 设置intellij.version您要构建的对象
    2. 设置您的intellij.pluginName
    3. 定义您的来源和资源在哪里
    4. 定义你的插件版本
    5. 定义一个Gradle 包装器,使人们(和 Travis)能够在没有 Gradle 的情况下构建您的插件
  4. 创建 gradle 包装脚本gradle wrapper
  5. 在本地测试和修复您的构建过程./gradlew assemble

如果一切正常,您可以将build.gradlegradlew和- 文件夹推送到您gradlew.bat的仓库。gradle

使用 Travis-CI 构建

对于 Travis,您想使用gradlew脚本进行构建。为此,您需要使其在 travis 运行中可执行。一个例子可以在这里找到。

于 2017-06-29T15:05:45.737 回答