簡體   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