Gradle 多项目在根项目中定义依赖项

Posted

技术标签:

【中文标题】Gradle 多项目在根项目中定义依赖项【英文标题】:Gradle multiproject define dependency on root project 【发布时间】:2013-11-20 06:45:01 【问题描述】:

我有一个多项目 gradle 构建,以这种方式配置:

root
  |
  |---- projectA
  |
  |---- projectB

我想在root/build.gradle 中声明所有嵌套项目的依赖项,这是文件:

subprojects 
      version = '1.0-SNAPSHOT'
      repositories 
           mavenLocal()
           mavenCentral()
           maven 
               url 'https://repository.jboss.org/nexus/content/groups/public-jboss/'
           
       


allprojects 
    dependencies 
        compile 'org.projectlombok:lombok:1.12.2'
    

但是当我执行构建时,我有:

* What went wrong:

评估根项目“代码”时出现问题。

No signature of method:
org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile() is applicable for argument types: (java.lang.String) values: [org.projectlombok:lombok:1.12.2]

可能的解决方案:模块(java.lang.Object)

我做错了什么?

【问题讨论】:

【参考方案1】:

compile 方法是您一直在使用的插件的一部分 (reference)。

allprojects 

    apply plugin: 'java'
    //so that we can use 'compile', 'testCompile' for dependencies

    dependencies 
        implementation 'org.projectlombok:lombok:1.12.2'
    

【讨论】:

通常你需要subprojects,而不是allprojects 'java'插件已应用,但与安卓插件不兼容。【参考方案2】:

如果你得到'java'插件已被应用,但它与Android插件不兼容错误,试试这个

subprojects 
    afterEvaluate 
        dependencies 
            implementation "YOUR DEPENDENCIES"
        
    

【讨论】:

以上是关于Gradle 多项目在根项目中定义依赖项的主要内容,如果未能解决你的问题,请参考以下文章

gradle多项目构建添加logback日志功能以及相关配置

在根项目中找不到任务“publishApkRelease”

在根项目中找不到任务“publishApkRelease”

项目构建失败:任务“compileDebug”在根项目中不明确

多模块 Spring Boot 项目中的 Gradle 依赖插件

具有项目编译依赖项的 Gradle 嵌套多项目