gpt4 book ai didi

dependency-injection - Gradle 无法使用 fileTree 将依赖项注入(inject)子项目

转载 作者:行者123 更新时间:2023-12-03 05:02:49 24 4
gpt4 key购买 nike

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

现在子项目共享一些依赖配置,所以我想我会在根项目的 build.gradle 中做的是:

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

但是,这不起作用,它会失败并显示一个相当模糊的错误消息:

A problem occurred evaluating root project 'qype-android' Cause: No signature of method: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile() is applicable for argument types: (org.gradle.api.internal.file.DefaultConfigurableFileTree) values: [file set 'lib'] Possible solutions: module(java.lang.Object)



经过反复试验,我可以通过将“java”插件应用于父项目来“解决”这个问题。

怎么会?我在 Gradle 文档中没有看到 fileTree依赖项需要 Java 插件。即便如此,为什么我需要在注入(inject)配置的项目上使用它,而不是在正在配置的项目上使用它(请注意,子项目本身都应用 Java 插件)?

这是否意味着如果我有 N 个不同的子项目,它们都具有不同的性质,并应用不同的插件,那么父项目也必须始终将在某处使用的所有插件集合应用于自身?

最佳答案

它不是 fileTree这需要'java'插件。

错误消息提示未定义 compile依赖配置。 Java 插件为您定义了此配置,以便您可以向其添加依赖项(包括您的 fileTree)。

关于dependency-injection - Gradle 无法使用 fileTree 将依赖项注入(inject)子项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4691228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com