2014-01-23 43 views
2

我有我的build.gradle我的子子模块下列操作之一:摇篮想法NPE修改IPR文件

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在上面的闭包中指定的任务被执行(我认为是因为该插件应用于父项目)。

为什么会发生此错误?我该如何解决它?

回答

3

新手错误:project属性仅在模块为根目录时可用。说得通。我能够使用以下子模块修改ipr文件:

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