首页 文章

gradle编译依赖于需求,否则使用jar

提问于
浏览
0

我有兴趣在多模块项目中使用gradle,我可以重用这个问题Gradle nested multi-projects with project compile dependencies并说明它的依赖关系

Root
  |__ P1
  |   |_ PP1
  |   |_ PP2
  |
  |__ P2
     |_PP3
     |_PP4

正如在最初的问题中,我想编译PP1 - 但我只是按需,否则我想使用最新的构建jar依赖 .

dependencies {
    compile(project(":P1:PP1"))
}

理想情况下,我想要类似的东西

dependencies {
    compile(compileFromSourceCodeOrLoadJar(project(":P1:PP1"), 'P1:PP1'))
}

如果PP1目录中的源文件比最新构建的jar更新,它将被编译 . 这个想法只有在严格必要的情况下才能编译 . 可以从源文件的最后修改时间戳与jar文件做出决定 .

为了使其更加复杂和可能有效,应根据版本控制系统输出做出决定 - 如果从时间X或修订版R开始有任何更改 - 则结账和编译;否则使用jar依赖 .

有人解决了这个问题吗?我想它可以通过自定义gradle / groovy插件解决,但有人必须已经解决了吗?

谢谢 .

1 回答

  • 1

    Gradle计划支持分布式构建缓存,但它尚不可用 . 在不触及Gradle代码库的情况下实现这一点可能很困难(我不知道任何这样的努力) . 常规的Maven / Ivy仓库可能不是保持缓存构建结果的最佳位置 .

相关问题