错误:
构建文件' 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之后。
答案 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
块,因为它从上一段开始。