也许我错过了Gradle的工作方式。我在这里是一个父级项目,仅包含配置,即在构建它时不会建造任何工件,它只是管理和构建其所有子项目。

现在,子项目共享一些依赖项配置,因此我发现我在root Project的build.gradle中会做什么:

subprojects {
  dependencies {
    compile fileTree(dir: 'lib', includes: ['*.jar'])
  }    
}

但是,这是行不通的,它会因错误的错误消息而失败:

评估根项目“ qype-android'原因:方法:org.gradle.api.internal.artifacts.dsl.depperencies.defaultDependendendendencyHandler.compile()适用于参数类型:(org.gradle.api。 internal.file.defaultConfigurablefiletree)值:[文件集'lib']可能的解决方案:模块(java.lang.object)

经过一些反复试验,我可以通过将'Java'插件应用于父项目“解决”此问题。

怎么来的?我看不到Gradle文档的任何地方 fileTree 依赖关系需要Java插件。即便如此,为什么我在注入配置的项目上需要它,而不是在正在配置的项目上(请注意,子项目全部应用Java插件本身)?

这是否意味着,如果我有不同的n个不同的子标记,它们都是不同的,并应用不同的插件,则父项目必须始终应用 全部 插件生物也在某个地方使用?

有帮助吗?

解决方案

不是 fileTree 这需要“ Java”插件。

错误消息抱怨未定义 compile 依赖性配置。 Java插件为您定义了此配置,因此您可以将依赖项(包括您的Filetree)添加到它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top