V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rizon
V2EX  ›  程序员

gradle 怎么配置依赖对所有的子模块都生效?

  •  
  •   rizon ·
    othorizon · 2020-05-09 12:32:48 +08:00 · 2358 次点击
    这是一个创建于 1693 天前的主题,其中的信息可能已经有所发展或是发生改变。

    研究了好半天也不会。 我在根模块添加:

    subprojects{
     dependencies{
      testCompile group: 'junit', name: 'junit', version: '4.12'
     }
    }
    

    这个 gradle 执行会报错

    A problem occurred evaluating root project 'operation'.
    > Could not find method testCompile() for arguments [{group=junit, name=junit, version=4.12}] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
    
    6 条回复    2020-05-12 14:18:34 +08:00
    ldcloli
        1
    ldcloli  
       2020-05-09 12:35:50 +08:00
    子项目中有不支持 testCompile 字段的模块?
    rizon
        2
    rizon  
    OP
       2020-05-09 13:12:33 +08:00
    @ldcloli #1 我只能每个子项目分别配置 testCompile 才行
    Flywith24
        3
    Flywith24  
       2020-05-09 13:54:43 +08:00
    使用 buildSrc,添加公共依赖和配置

    https://juejin.im/post/5e22c2ce6fb9a02ff67d41c3

    这个 demo 是 kotlin 的,也可以用 groovy 的
    zoharSoul
        4
    zoharSoul  
       2020-05-09 14:15:39 +08:00
    子模块肯定有依赖关系吧.
    放在 base 那个子模块里就可以了啊
    norcm
        5
    norcm  
       2020-05-09 16:03:07 +08:00
    compile 和 testCompile 是属于 java 或者 java-library 这个插件的,所以你得申明使用 java 插件:
    subprojects{
    apply plugin: "java-library"
    dependencies{
    testCompile group: 'junit', name: 'junit', version: '4.12'
    }
    }
    rizon
        6
    rizon  
    OP
       2020-05-12 14:18:34 +08:00
    @norcm #5 多谢 加了一个 apply plugin: 'java' 之后就可以了。gradle 是真麻烦的。。看不明白
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2048 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:36 · PVG 08:36 · LAX 16:36 · JFK 19:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.