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。