簡體   English   中英

Gradle無法使用fileTree將依賴項注入子項目

[英]Gradle fails injecting dependencies into subprojects using fileTree

也許我缺少有關Gradle工作方式的一些信息。 我這里有一個父項目,它僅包含配置,即在構建它時不會構建任何工件,它僅管理和構建其所有子項目。

現在,子項目共享一些依賴項配置,因此我知道在根項目的build.gradle中將執行以下操作:

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

但是,它不起作用,它會失敗,並顯示一條模糊的錯誤消息:

評估根項目'qype-android'時發生問題原因:方法的無簽名:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile()適用於參數類型:(org.gradle.api。 internal.file.DefaultConfigurableFileTree)值:[file set'lib']可能的解決方案:module(java.lang.Object)

經過一番嘗試和錯誤后,我可以通過將“ java”插件應用於父項目來“修復”此問題。

怎么會? 我沒有從Gradle文檔中看到fileTree依賴項需要Java插件。 即使這樣,為什么在注入配置的項目中而不是正在配置的項目上也需要它(請注意,子項目都自己應用了Java插件)?

這是否意味着如果我有N個不同性質的子項目,並且應用了不同的插件,那么父項目也必須始終將在某處使用的所有插件集也應用於自身?

不是需要“ java”插件的fileTree

該錯誤消息抱怨未定義的compile依賴項配置。 Java插件為您定義了此配置,以便您可以向其添加依賴項(包括fileTree)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM