IntelliJ gradle - 未知属性

时间:2017-11-03 09:03:04

标签: intellij-idea gradle build.gradle

错误:

  

构建文件' C:\ Users \ Me \ Dev \ project \ app \ build.gradle'行:21

     
      
  • 出了什么问题:   评估根项目'应用程序时出现问题。   无法获得未知的财产图书馆'对于org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler类型的对象。
  •   

在app.gradle内部

dependencies{
    compile libraries.my_lib
    deploy libraries.my_lib
}

在project.gradle中

ext.libraries = {
    my_lib:    'com.myCompany:my-lib:1.0.0'
}

在pom.xml中

<modules>
    <module>my-lib</modules>
</modules>

在app.gradle libaries.中按CTRL + Space会显示可能自动完成的my_lib库,但在使用gradle clean deploy进行编译时,它会失败并返回上面的消息。

这只发生在我将IDE更新到最新的IntelliJ之后。

1 个答案:

答案 0 :(得分:2)

ext仅为其调用的项目定义扩展名。在您的情况下,libraries.my_lib定义为project.gradle(我猜,build.gradle位于project 1}}目录)因此,在另一个构建文件(app.gradle中不可用,我想这是build.gradle目录中的app)除非{{ 1}}不是project。子项目可以访问父项的属性,这是共享app的唯一方法:项目应该相互关联。

顺便说一句,您可以在ext文件中定义属性。可能有很多,一个用于构建中的每个项目。在构建的根目录中放置一个gradle.properties,将其内容应用于项目树的根目录,从而使属性在任何地方都可用(同样适用于根对象的gradle.properties块,因为它从上一段开始。