我的子模块之一的 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/