2014-01-23 44 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 */ }