繁体   English   中英

IntelliJ插件:maven,gradle和travis-ci

[英]IntelliJ plugin: maven, gradle and travis-ci

目前,我为插件构建的结构有点混乱:我使用普通的IDEA项目文件在本地构建插件。 当我将其推送到仓库并由travis-ci进行构建时,它使用了maven pom.xml因为要使travis正常工作,它始终必须下载完整的IDEA源代码。

尽管这可行,但它有几个缺点:

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

我看到Gradle有一个“想法”插件,并且在谷歌搜索之后,给人的印象是Gradle是当今的首选。 我已经看到了向IntelliJ IDEA添加Gradle支持的最佳方法,并且我确定可以使用那里的答案将pom.xml转换为有效的build.gradle

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

一些细节

要编译IDEA插件,您需要其SDK,您可以通过安装IDEA或下载完整的软件包来访问它。 在本地,我将安装用于SDK。 使用Travis,我构建的maven拥有下载tar.gz并将其解压缩的规则。

事实证明,特别是对于构建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有许多build.gradle项目),以了解每个intellij属性的作用。
  3. 通过以下方式将其适应您的插件
    1. 设置要构建的intellij.version
    2. 设置您的intellij.pluginName
    3. 定义您的资源和来源
    4. 定义您的插件版本
    5. 定义一个Gradle包装器 ,使人们(和Travis)无需使用Gradle即可构建您的插件
  4. 创建具有gradle这个包装脚本gradle wrapper
  5. 使用./gradlew assemble在本地测试并修复您的构建过程

如果一切正常,则可以将build.gradlegradlewgradlew.batgradle -folder推送到您的gradle

使用Travis-CI进行构建

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM