目前,我的插件构建结构有点困惑:我使用普通的 IDEA 项目文件在本地构建插件。当我将其推送到存储库并且 travis-ci 正在构建它时,它使用 maven pom.xml
因为为了让 travis 工作,它总是必须下载完整的 IDEA 源代码。
虽然这可行,但有几个缺点:
- 我需要使两个已构建的机制保持最新状态。这是
- 当新的 IDEA 版本发布时(每隔几周),我需要在 Maven 和 IDEA 设置中更改 SDK
- 当我添加新库、更改资源等时,我也需要对这两个设置执行此操作
- 当我保持 IDEA Maven 插件打开时,我遇到了问题,因为它看到了
pom.xml
并干扰了我的本地构建。关闭它意味着我无法使用具有跟踪依赖项功能的 Maven 下载库。
我看到 Gradle 有一个“idea”插件,在谷歌搜索后,我得到的印象是 Gradle 是目前的首选。我见过Best way to add Gradle support to IntelliJ IDEA我确信我可以使用那里的答案将我的 pom.xml
转换为有效的 build.gradle
。
但是,也许其他人已经这样做了或者可以提供更好的方法。我正在寻找一种在本地和 Travis-CI 上构建插件的统一方法。
一些细节
要编译 IDEA 插件,您需要其 SDK,您可以通过安装 IDEA 或下载完整包来访问它。在本地,我正在使用我安装的 SDK。使用 Travis,我构建的 Maven 具有下载 tar.gz
并解压它的规则。
最佳答案
事实证明,特别是对于构建 IntelliJ 插件,Gradle 似乎有很多优势。这主要归功于 Gradle 出色的 IntelliJ 插件,它使编译插件变得更加容易。借助 Gradle,我可以将超过 220 行的 Maven 构建转换为几行易于阅读的 Gradle 代码。主要优点是
- 它负责下载和使用正确的 IDEA SDK,而您只需指定 IDEA 版本。
- 它可以将您的插件发布到 Jetbrains 存储库并使其立即可供所有用户使用
- 它修复了
plugin.xml
中的项目,例如您可以在gradle.build
中使用一个中心版本号,它将使plugin.xml
保持最新状态,或者可以包含更改注释 - 它与 Travis-CI 无缝集成
如何将 Gradle 与现有 IDEA 插件结合使用
手动执行。这更容易。
- 创建一个空的
build.gradle
文件 - 查看 example并通读 README (最后有很多
build.gradle
项目)来看看每个 intellij 属性的作用。 - 通过以下方式使其适应您的插件
- 设置您想要构建的
intellij.version
- 设置您的
intellij.pluginName
- 定义您的来源和资源所在
- 定义您的plugin version
- 定义 Gradle wrapper使人们(和 Travis)无需 Gradle 即可构建您的插件
- 设置您想要构建的
- 使用
gradlewrapper
创建 gradle 包装脚本 - 使用
./gradlew assemble 在本地测试并修复您的构建过程
如果一切正常,您可以推送 build.gradle
、gradlew
、gradlew.bat
和 gradle
>-文件夹到您的存储库。
使用 Travis-CI 进行构建
对于 Travis,您希望使用 gradlew 脚本进行构建。为此,您需要使其在 travis run 中可执行。可以找到一个示例 here .
关于java - IntelliJ 插件 : maven, gradle 和 travis-ci,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44490199/