IntelliJ IDEA 任務自定義

IntelliJ 專案的三個基本檔案 - ipr,iws 和 iml 檔案 - 可以在想法任務中通過 gradle 訪問

project.ipr
module.iml
workspace.iws

使用 .withXml 可以訪問 xml。使用 .asNode() 將其轉換為 groovy xml 節點。

例如:

project.ipr.withXml { provider ->
    def node = provider.asNode()

從那裡開始非常簡單 - 修改 gradle 為你配置 IntelliJ 專案,在檔案啟動時獲取檔案,執行你想要的操作(在 IntelliJ 內部),然後用舊檔案區分新檔案。你應該看到自定義構思作業所需的 XML。你還需要記下它所在的 xml 中的位置。

另一件需要考慮的事情是,如果多次執行 gradle 構思,則不需要 IntelliJ 檔案中的重複節點。因此,你需要搜尋你想要製作的節點,如果它不存在,你可以建立並插入它。

陷阱:

有時,在 find 方法中使用==進行字串比較時,它會失敗。在測試時,我發現情況確實如此,我使用 .contains。

搜尋節點時,並非所有節點都具有你用作標準的屬性,因此請務必檢查是否為 null。