intellij-idea - Gradle idea NPE修改ipr文件

标签 intellij-idea nullpointerexception gradle

我的子模块之一的 build.gradle 中有以下内容:

apply plugin: 'war'
apply plugin: 'idea'

dependencies {
  compile project(':x')
  compile project(':y')
  compile project(':z')
}

idea {
  module.iml.withXml {
    // do some stuff
  }
  project.ipr.withXml {
    // do some more stuff
  }
}

但是,当我运行 gradle build 时,出现以下错误:

A problem occurred evaluating project ':a:b'
  ...
Caused by: java.lang.NullPointerException: Cannot get property 'ipr' on null object
  ...

在我调用project.ipr的那一行。奇怪的是,如果我删除 apply plugin: 'idea' 行,错误就会消失,当我运行 gradle idea 时,上面的闭包中指定的任务就会被执行(我认为因为该插件已应用于父项目)。

为什么会出现这个错误?我该如何修复它?

最佳答案

菜鸟错误:project 属性仅在模块是根模块时才可用。说得通。我可以使用以下命令从子模块修改 ipr 文件:

rootProject.idea.project.ipr.withXml { /* modify ipr */ }

关于intellij-idea - Gradle idea NPE修改ipr文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312471/

相关文章:

intellij-idea - 为什么 Gradle 将我的模块路径从相对更改为绝对?

intellij-idea - 如何在 IntelliJ 中移动工具栏?

java - 多线程 Java - 同步 - 警告 Android Studio

java - 从 URL 获取图像返回 NullPointerException (Java)

android - 在多模块项目中使用 Firebase

java - “Cannot find or load main class net.epsilon.app.Main” Java [等级]

file - 有没有办法告诉 IntelliJ IDEA 在搜索/替换或重构期间不要查看文件?

java - 应用程序在模拟器上崩溃,但它可以在真实设备上运行

android - 第一次运行Flutter Project

java - 为什么 IDEA 会报 possible NullPointerException?